クイックスタート Session Manager のデフォルト IAM ポリシー - AWS Systems Manager

クイックスタート Session Manager のデフォルト IAM ポリシー

このセクションのサンプルを使用して、一般的に Session Manager のアクセスに最も必要とされるアクセス許可を提供する、IAM ポリシーを作成します。

注記

AWS KMS キーポリシーを使用してどの IAM ユーザー、IAM ロール、AWS アカウントに CMK へのアクセス権を付与するかを制御することもできます。詳細については、AWS Key Management Service Developer Guide の「AWS KMSリソースへのアクセス管理の概要」および「AWS KMS でのキーポリシーの使用」を参照してください。

クイックスタート Session Manager のエンドユーザーポリシー

次の例を使用して、Session Manager の IAM エンドユーザーポリシーを作成します。

ユーザーがセッションを Session Manager コンソールおよび AWS CLI からのみ、Amazon EC2 コンソールからのみ、または 3 つすべてから開始できるようにするポリシーを作成できます。

このポリシーは、特定のインスタンスへのセッションを開始する機能と、各自のセッションのみを終了する機能をエンドユーザーに提供します。ポリシーに対して行うカスタマイズの例については、「追加の Session Manager のサンプル IAM ポリシー」を参照してください。

注記

以下のすべてのサンプルポリシーで、instance-id はアクセスを許可するインスタンスの ID に置き換えます。この ID は i-02573cafcfEXAMPLE という形式で入力します。お客様の AWS リージョンと AWS アカウント ID で regionaccount-id を置き換えます (us-east-2111122223333 など)。

次のタブから選択して、提供するセッションアクセスの範囲のサンプルポリシーを表示します。

Session Manager and CLI

ユーザーが Session Manager コンソールと AWS CLI からのみセッションを開始できるようにするには、このサンプルポリシーを使用します。このポリシーでは、Amazon EC2 コンソールからセッションを開始するために必要なすべてのアクセス許可は提供されません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/instance-id", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" } ] }
Amazon EC2

ユーザーが Amazon EC2 コンソールからのみセッションを開始できるようにするには、このサンプルポリシーを使用します。このポリシーでは、Session Manager コンソールおよび AWS CLI からセッションを開始するために必要なすべてのアクセス許可は提供されません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/instance-id" ] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Session Manager, CLI, and Amazon EC2

ユーザーが Session Manager コンソール、AWS CLI、Amazon EC2 コンソールからセッションを開始できるようにするには、このサンプルポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/instance-id", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" } ] }

1 SSM-SessionManagerRunShell は、セッションの設定を保存するために Session Manager によって作成される SSM ドキュメントのデフォルト名です。代わりに、カスタムのセッションドキュメントを作成し、このポリシーで指定できます。また、SSH を使用してセッションを開始するユーザー向けに、AWS が提供するドキュメント AWS-StartSSHSession を指定することもできます。SSH を使用してセッションをサポートするために必要な設定ステップについては、(オプション) Session Managerを介して SSH 接続を有効にする を参照してください。

2 条件要素 ssm:SessionDocumentAccessChecktrue として指定した場合、セッションの確立前に、ユーザーが定義済みのセッションドキュメント (この例では SSM-SessionManagerRunShell) へのアクセスを明示的に許可されていることがチェックされます。詳細については、「AWS CLI でセッションドキュメントのアクセス許可チェックを適用する」を参照してください。

3kms:GenerateDataKey アクセス許可により、セッションデータの暗号化に使用されるデータ暗号化キーを作成できます。セッションデータに AWS Key Management Service (AWS KMS) 暗号化を使用する場合は、key-namearn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE 形式で、使用するカスタマーマスターキー (CMK) のARN に置き換えてください。セッションデータに AWS KMS キー暗号化を使用しない場合は、ポリシーから次のコンテンツを削除します。

, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" }

セッションデータを暗号化する AWS KMS とCMK の詳細については、「セッションデータの AWS KMS キー暗号化を有効にする (コンソール)」を参照してください。

4 SendCommand のアクセス許可は、ユーザーが Amazon EC2 コンソールからセッションを開始しようとしたが、最初に SSM エージェント を更新するコマンドを送信する必要がある場合に必要です。

クイックスタート Session Manager の管理者ポリシー

次の例を使用して、Session Manager の IAM 管理者ポリシーを作成します。

このポリシーは、Key=Finance,Value=WebServers でタグ付けされたインスタンスに対してセッションを開始する権限、設定を作成、更新、削除するためのアクセス許可、自分のセッションのみを終了するアクセス許可を管理者に提供します。ポリシーに対して行うカスタマイズの例については、「追加の Session Manager のサンプル IAM ポリシー」を参照してください。

管理者が Session Manager コンソールと AWS CLI からのみ、Amazon EC2 コンソールからのみ、または 3 つすべてからこれらのタスクを実行できるようにするポリシーを作成できます。

注記

お客様の AWS リージョンと AWS アカウント ID で regionaccount-id を置き換えます (us-east-2111122223333 など)。

次のタブから選択して、サポートするアクセスシナリオのサンプルポリシーを表示します。

Session Manager and CLI

管理者が Session Manager コンソールと AWS CLI からのみセッション関連のタスクを実行できるようにするには、このサンプルポリシーを使用します。このポリシーでは、Amazon EC2 コンソールからセッション関連のタスクを実行するために必要なすべてのアクセス許可は提供されません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Amazon EC2

管理者が Amazon EC2 からのみセッション関連のタスクを実行できるようにするには、このサンプルポリシーを使用してします。このポリシーでは、Session Manager コンソールおよび AWS CLI からセッション関連のタスクを実行するために必要なすべてのアクセス許可は提供されません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Session Manager, CLI, and Amazon EC2

管理者が Session Manager コンソール、AWS CLI、Amazon EC2 コンソールからセッション関連のタスクを実行できるようにするには、このサンプルポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

1 ユーザーが Amazon EC2 コンソールからセッションを開始しようとしたが、最初に SSM エージェント を更新するコマンドを送信する必要がある場合には、SendCommand のアクセス許可が必要です。