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 インスタンス プロファイルとロールの詳細については、IAM ユーザーガイドの「インスタンスプロファイルの使用」と「Amazon EC2 の IAM ロール」をご参照ください。オンプレミスマシンの IAM サービスロールの作成における詳細については、「ハイブリッド環境用の IAM サービスロールの作成」をご参照ください。

最小限の Session Manager 許可 (コンソール) を付与した IAM ロールの作成

以下の手順にしたがって、インスタンス上の Session Manager アクションのみに許可を付与するポリシーが付いたカスタム IAM ロールを作成します。

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

  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

  4. デフォルトの内容を次のポリシーに置き換えます。[key-name] を、使用する KMS キーの Amazon リソースネーム (ARN) に置き換えます。

    { "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" } ] }

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

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

    , { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name" }
  5. [Next: Tags] (次へ: タグ) を選択します。

  6. (オプション) [Add tag] (タグを追加) を選択してタグを追加し、ポリシーの優先タグを入力します。

  7. 次へ: レビューを選択します。

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

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

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

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

  12. [Create role] (ロールを作成) ページで [AWS service] (AWS のサービス) を選択して、[Use case] (ユースケース) で [EC2] を選択します。

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

  14. [Add permissions] (アクセス許可を追加) ページで、先ほど作成したポリシーの名前 (SessionManagerPermissions など) の左側にあるチェックボックスをオンにします。

  15. [Next] を選択します。

  16. [Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、IAM ロールの名前 (MySessionManagerRole など) を入力します。

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

  18. (オプション) [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 アクセス許可を追加する必要があります。このアクセス許可が追加されていないと、Amazon S3 バケットを所有するアカウントはセッション出力ログにアクセスできません。

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

Session Manager、Amazon S3、CloudWatch Logs (コンソール) の許可を持つIAM ロールの作成方法

  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

  4. デフォルトの内容を次のポリシーに置き換えます。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    { "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:Decrypt" ], "Resource": "key-name" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] }
  5. [Next: Tags] (次へ: タグ) を選択します。

  6. (オプション) [Add tag] (タグを追加) を選択してタグを追加し、ポリシーの優先タグを入力します。

  7. 次へ: レビューを選択します。

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

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

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

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

  12. [Create role] (ロールを作成) ページで [AWS service] (AWS のサービス) を選択して、[Use case] (ユースケース) で [EC2] を選択します。

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

  14. [Add permissions] (アクセス許可を追加) ページで、先ほど作成したポリシーの名前 (SessionManagerPermissions など) の左側にあるチェックボックスをオンにします。

  15. [Next] を選択します。

  16. [Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、IAM ロールの名前 (MySessionManagerRole など) を入力します。

  17. (オプション) [Role description] (ロールの説明) に、ロールの説明を入力します。

  18. (オプション) [Add tag] (タグを追加) を選択してタグを追加し、ロールの優先タグを入力します。

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