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

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

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

注記

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

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

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

Session Manager コンソールと AWS Command Line Interface (AWS CLI) のみ、Amazon Elastic Compute Cloud (Amazon EC2) コンソールのみ、または 3 つすべてからセッションを開始できるようにするポリシーを作成できます。

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

次のサンプルポリシーで、各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

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

セッションマネージャー and CLI

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:region:account-id: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", "ssm:ResumeSession" ], "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:region:account-id:instance/instance-id" ] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
セッションマネージャー, 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:region:account-id: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", "ssm:ResumeSession" ], "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 形式で、使用する KMS キーの Amazon リソースネーム (ARN) に置き換えてください。セッションデータに KMS キー暗号化を使用しない場合は、ポリシーから次のコンテンツを削除します。

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

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

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

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

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

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

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

次のサンプルポリシーで、各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

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

セッションマネージャー and CLI

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:region:account-id: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", "ssm:ResumeSession" ], "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:region:account-id:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
セッションマネージャー, 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:region:account-id: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", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

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