Session Manager のカスタム IAM ロールを作成
Amazon EC2 マネージドインスタンスでアクションを実行する許可を Session Manager に付与する AWS Identity and Access Management (IAM) ロールを作成できます。Amazon Simple Storage Service (Amazon S3) と Amazon CloudWatch Logs に送信されるセッションログの許可を付与するポリシーを作成することもできます。
IAM ロールを作成後、インスタンスのロールをアタッチする情報については、AWS re:Post ウェブサイトの「インスタンスプロファイルをアタッチまたは置き換え
トピック
最小限の Session Manager 許可 (コンソール) を付与した IAM ロールの作成
以下の手順にしたがって、インスタンス上の Session Manager アクションのみに許可を付与するポリシーが付いたカスタム IAM ロールを作成します。
最小限の Session Manager アクセス権限でインスタンスプロファイルを作成するには (コンソール)
AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。([Get Started] ボタンが表示された場合は、そのボタンを選択してから、[Create Policy] を選択します)。
-
[JSON] タブを選択します。
-
デフォルトの内容を次のポリシーに置き換えます。AWS Key Management Service (AWS KMS) を使用してセッションデータを暗号化するには、
key-name
を、使用する AWS KMS key の Amazon リソースネーム (ARN) に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceInformation", "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "
key-name
" } ] }セッションデータを暗号化するための KMS キーの使用については、「セッションデータの KMS キー暗号化を有効にする (コンソール)」を参照してください。
セッションデータに AWS KMS 暗号化を使用しない場合は、ポリシーから以下のコンテンツを削除できます。
, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "
key-name
" } -
[Next: Tags] (次へ: タグ) を選択します。
-
(オプション) [Add tag] (タグを追加) を選択してタグを追加し、ポリシーの優先タグを入力します。
-
[次へ: レビュー] を選択します。
-
[Review policy (ポリシーの確認)] ページで、[Name (名前)] にインラインポリシーの名前を入力します (
SessionManagerPermissions
など)。 -
(オプション) [Description (説明)] に、ポリシーの説明を入力します。
-
[Create policy] を選択します。
-
ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。
-
[ロールを作成] ページで [AWS サービス] を選択して、[ユースケース] で [EC2] を選択します。
-
[Next] を選択します。
-
[Add permissions] (アクセス許可を追加) ページで、先ほど作成したポリシーの名前 (
SessionManagerPermissions
など) の左側にあるチェックボックスをオンにします。 -
[Next] を選択します。
-
[Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、IAM ロールの名前 (
MySessionManagerRole
など) を入力します。 -
(オプション) [Role description (ロールの説明)] に、インスタンスプロファイルの説明を入力します。
-
(オプション) [Add tag] (タグを追加) を選択してタグを追加し、ロールの優先タグを入力します。
[ロールの作成] を選択します。
ssmmessages
アクションの詳細については、「リファレンス: ec2messages、ssmmessages およびその他の API オペレーション」を参照してください。
Session Manager、Amazon S3、CloudWatch Logs (コンソール) の許可を持つIAM ロールの作成
以下の手順にしたがって、インスタンス上の Session Manager アクションに許可を付与するポリシーが付いたカスタム IAM ロールを作成します。このポリシーは、セッションログを Amazon Simple Storage Service (Amazon S3) バケットおよび Amazon CloudWatch Logs ロググループに保存するために必要なアクセス許可も提供します。
重要
セッションログを別の AWS アカウント によって所有されている Amazon S3 バケットに出力するには、IAM ロールポリシーに s3:PutObjectAcl
の許可を追加する必要があります。さらに、バケットポリシーで、所有アカウントが使用する IAM ロールへのクロスアカウントアクセスを許可して、管理対象インスタンスに Systems Manager 許可を付与するようにする必要があります。バケットが Key Management Service (KMS) 暗号化を使用している場合は、バケットの KMS ポリシーでもこのクロスアカウントアクセスを許可する必要があります。Amazon S3 クロスアカウントバケットの許可の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「クロスアカウントバケットパーミッションを付与する」を参照してください。クロスアカウントの許可が追加されていないと、Amazon S3 バケットを所有するアカウントはセッション出力ログにアクセスできません。
セッションログを保存するための設定の指定方法については、「セッションロギングの有効化と無効化」を参照してください。
Session Manager、Amazon S3、CloudWatch Logs (コンソール) の許可を持つIAM ロールの作成方法
AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。([Get Started] ボタンが表示された場合は、そのボタンを選択してから、[Create Policy] を選択します)。
-
[JSON] タブを選択します。
-
デフォルトの内容を次のポリシーに置き換えます。各
リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel", "ssm:UpdateInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/
s3-prefix
/*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name
" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] } -
[Next: Tags] (次へ: タグ) を選択します。
-
(オプション) [Add tag] (タグを追加) を選択してタグを追加し、ポリシーの優先タグを入力します。
-
[次へ: レビュー] を選択します。
-
[Review policy (ポリシーの確認)] ページで、[Name (名前)] にインラインポリシーの名前を入力します (
SessionManagerPermissions
など)。 -
(オプション) [Description (説明)] に、ポリシーの説明を入力します。
-
[Create policy] を選択します。
-
ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。
-
[ロールを作成] ページで [AWS サービス] を選択して、[ユースケース] で [EC2] を選択します。
-
[Next] を選択します。
-
[Add permissions] (アクセス許可を追加) ページで、先ほど作成したポリシーの名前 (
SessionManagerPermissions
など) の左側にあるチェックボックスをオンにします。 -
[Next] を選択します。
-
[Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、IAM ロールの名前 (
MySessionManagerRole
など) を入力します。 -
(オプション) [Role description] (ロールの説明) に、ロールの説明を入力します。
-
(オプション) [Add tag] (タグを追加) を選択してタグを追加し、ロールの優先タグを入力します。
-
[ロールの作成] を選択します。