AWS Systems Manager
ユーザーガイド

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

インスタンス上の Session Manager アクションに対してのみアクセス権限を提供する、カスタム IAM インスタンスプロファイルを作成できます。Amazon S3 と CloudWatch Logs に送信されるセッションアクティビティのログに必要となるアクセス権限を提供するポリシーを作成することもできます。

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

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

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

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

  1. Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/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 形式で、使用するカスタマーマスターキー (CMK) のARN に置き換えてください。

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

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

    セッションデータを暗号化するための AWS KMS と CMK の使用については、「セッションデータの AWS 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 S3 バケットCloudWatch Logs ロググループに保存するのに必要なアクセス権限も提供します。

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

Session Manager と Amazon S3 および CloudWatch Logs のアクセス権限を持つインスタンスプロファイルを作成するには

  1. Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam/.

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

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

  4. デフォルトコンテンツを以下のものと置き換えます。s3-bucket-names3-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:::s3-bucket-name/s3-bucket-prefix" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] }

    重要

    セッションログを別の AWS アカウントによって所有されている Amazon S3 バケットに出力するには、このポリシーに IAM s3:PutObjectAcl アクセス権限を追加する必要があります。このアクセス権限が追加されていないと、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. [ロールの作成] を選択します。