Session Manager 用のカスタム IAM インスタンスプロファイルを作成する - AWS Systems Manager

Session Manager 用のカスタム IAM インスタンスプロファイルを作成する

インスタンス上の Session Manager アクションのみにアクセス許可を付与するカスタム AWS Identity and Access Management (IAM) インスタンスプロファイルを作成できます。Amazon Simple Storage Service (Amazon S3) と Amazon CloudWatch Logs に送信されるセッションアクティビティのログに必要となるアクセス許可を提供するポリシーを作成することもできます。

インスタンスプロファイルの作成後、インスタンスにインスタンスプロファイルをアタッチする方法については、「IAM ロールをインスタンスにアタッチする」および「インスタンスプロファイルをアタッチまたは置き換える」を参照してください。IAM インスタンスプロファイルとロールの詳細については、IAM ユーザーガイド の「インスタンスプロファイルの使用」および「Amazon EC2 の IAM ロール」を参照してください。

最小限の Session Manager アクセス許可でインスタンスプロファイルを作成する (コンソール)

次の手順を使用して、カスタム IAM インスタンスプロファイルを作成し、インスタンス上の Session Manager アクションのみにアクセス許可を付与するポリシーを作成します。

最小限の Session Manager アクセス許可でインスタンスプロファイルを作成するには (コンソール)

  1. AWS Management Console にサインインして、https://console.aws.amazon.com/iam の IAM マネジメントコンソールを開きます。

  2. ナビゲーションペインで、[ポリシー]、[ポリシーの作成] の順に選択します。([Get Started] ボタンが表示された場合は、そのボタンを選択してから、[Create Policy] を選択します)。

  3. [JSON] タブを選択します。

  4. デフォルトコンテンツを以下のものと置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceInformation", "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name" } ] }

    「ssmmessages」について

    ssmmessages の詳細については、「リファレンス: ec2messages、ssmmessages と他の API コール」を参照してください。

    「kms:Decrypt」について

    このポリシーでは、kms:Decrypt アクセス権限によってセッションデータの顧客キーの暗号化と復号が有効になります。セッションデータに AWS Key Management Service (AWS KMS) 暗号化を使用する場合は、key-namearn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE 形式で、使用する KMS キーの Amazon リソースネーム (ARN) に置き換えてください。

    セッションデータに AWS KMS 暗号化を使用しない場合は、ポリシーから以下のコンテンツを削除できます。

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

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

  5. [ポリシーの確認] を選択します。

  6. [Review policy (ポリシーの確認)] ページで、[Name (名前)] にインラインポリシーの名前を入力します (SessionManagerPermissions など)。

  7. (オプション) [Description (説明)] に、ポリシーの説明を入力します。

  8. [Create policy] を選択します。

  9. ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。

  10. [Create role (ロールの作成)] ページで、[AWS service (サービス)] を選択し、[Choose the service that will use this role (このロールを使用するサービスを選択)] リストから [EC2] を選択します。

  11. [Next: Permissions (次へ: アクセス権限)] を選択します。

  12. [Attached permissions policy (アタッチされたアクセス権限ポリシー)] ページで、先ほど作成したポリシーの名前 (SessionManagerPermissions など) の左側にあるチェックボックスをオンにします。

  13. [Next: Review] を選択します。

  14. [Review (確認)] ページの [Role name (ロール名)] に、IAM インスタンスプロファイルの名前 (MySessionManagerInstanceProfile など) を入力します。

  15. (オプション) [Role description (ロールの説明)] に、インスタンスプロファイルの説明を入力します。

  16. [ロールの作成] を選択します。

Session Manager および Amazon S3 および CloudWatch Logs のアクセス許可を持つインスタンスプロファイルを作成する (コンソール)

次の手順を使用して、カスタム IAM インスタンスプロファイルを作成し、インスタンス上の Session Manager アクションにアクセス許可を付与するポリシーを作成します。このポリシーは、セッションログを Amazon Simple Storage Service (Amazon S3) バケットおよび Amazon CloudWatch Logs ロググループに保存するために必要なアクセス許可も提供します。

セッションログを保存するための設定の指定方法については、「セッションアクティビティのログ記録」を参照してください。

Session Manager および Amazon S3 および CloudWatch Logs のアクセス許可を持つインスタンスプロファイルを作成するには (コンソール)

  1. AWS Management Console にサインインして、https://console.aws.amazon.com/iam の IAM マネジメントコンソールを開きます。

  2. ナビゲーションペインで、[ポリシー]、[ポリシーの作成] の順に選択します。([Get Started] ボタンが表示された場合は、そのボタンを選択してから、[Create Policy] を選択します)。

  3. [JSON] タブを選択します。

  4. デフォルトコンテンツを以下のものと置き換えます。DOC-EXAMPLE-BUCKETs3-bucket-prefix を、ユーザーのバケット名とプレフィックス (存在する場合) に置き換えてください。以下のポリシーの ssmmessages の詳細については、「リファレンス: ec2messages、ssmmessages と他の API コール」を参照してください。

    { "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:::DOC-EXAMPLE-BUCKET/s3-bucket-prefix/*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] }
    重要

    セッションログを別の AWS アカウント によって所有されている Amazon S3 バケットに出力するには、このポリシーに IAM s3:PutObjectAcl アクセス許可を追加する必要があります。このアクセス許可が追加されていないと、Amazon S3 バケットを所有するアカウントはセッション出力ログにアクセスできません。

  5. [ポリシーの確認] を選択します。

  6. [Review policy (ポリシーの確認)] ページで、[Name (名前)] にインラインポリシーの名前を入力します (SessionManagerPermissions など)。

  7. (オプション) [Description (説明)] に、ポリシーの説明を入力します。

  8. [Create policy] を選択します。

  9. ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。

  10. [Create role (ロールの作成)] ページで、[AWS service (サービス)] を選択し、[Choose the service that will use this role (このロールを使用するサービスを選択)] リストから [EC2] を選択します。

  11. [Next: Permissions (次へ: アクセス権限)] を選択します。

  12. [Attached permissions policy (アタッチされたアクセス権限ポリシー)] ページで、先ほど作成したポリシーの名前 (SessionManagerPermissions など) の左側にあるチェックボックスをオンにします。

  13. [Next: Review] を選択します。

  14. [Review (確認)] ページの [Role name (ロール名)] に、IAM インスタンスプロファイルの名前 (MySessionManagerInstanceProfile など) を入力します。

  15. (オプション) [Role description (ロールの説明)] に、インスタンスプロファイルの説明を入力します。

  16. [ロールの作成] を選択します。