メニュー
Amazon EC2 Systems Manager
ユーザーガイド

カスタムロールおよびポリシー使用したアクセス設定

Systems Manager 管理ポリシーを使用しない場合は、次の手順を使用して Systems Manager 用のカスタムインスタンスロールおよびユーザーアカウントを作成して設定します。

重要

既存の インスタンスロールおよびユーザーアカウントを使用する場合、このセクションに記載されているポリシーを、ロールおよびユーザーアカウントにアタッチする必要があります。また、.amazonaws.com が EC2 インスタンスロールの信頼ポリシーに含まれていることを確認する必要があります。詳細については、「タスク 4: 信頼ポリシーを確認する」を参照してください。

タスク 1: Systems Manager マネージドインスタンス用のカスタム IAM ポリシーを作成する

次に示している IAM ポリシーでは、マネージドインスタンスが Systems Manager API とやり取りできるようになります。ロールを作成し、このトピックで次のポリシーをそのロールにアタッチします。

Systems Manager マネージドインスタンスの IAM ポリシーを作成するには

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Policies] を選択します。

  3. フィルタフィールドに、AmazonEC2RoleforSSM と入力します。

  4. AmazonEC2RoleforSSM ポリシーを選択します。システムにポリシーの [Policy Document] が表示されます。

  5. ポリシードキュメントのコンテンツをコピーします。

    注記

    ポリシードキュメントは管理ポリシーであるため、IAM コンソールでポリシードキュメントの内容を変更することはできませんが、コピーすることはできます。

  6. ナビゲーションペインで、[Policies] を選択します。

  7. [Create Policy] を選択します。

  8. [Create Your Own Policy] の横の [Select] を選択します。

  9. ポリシー名 (SystemsManagerInstance など) および説明を入力し、先にコピーしたポリシーを [Policy Document] フィールドに貼り付けます。

  10. 必要に応じてポリシーを変更します。

    重要

    この IAM ポリシーの最後のセクションでは、Amazon リソースネーム (ARN) を指定して Amazon S3 バケットへのアクセスを制限できます。たとえば、最後の "Resource": "*" 項目を "Resource": "arn:aws:s3:::AnS3Bucket/* に変更できます。

  11. [Validate Policy] を選択します。ポリシーが有効であることを検証します。エラーが発生した場合は、始めかっこと終わりかっこ { } が含まれていることを確認してください。ポリシーを検証した後で、[Create Policy] を選択します。

タスク 2: カスタム IAM ユーザーポリシーを作成する

IAM ユーザーポリシーにより、[Document] リストでユーザーが表示できる Systems Manager ドキュメントが決まります。ユーザーは、Amazon EC2 コンソールで、または Windows PowerShell 用の AWS CLI または AWS ツールを使用して ListDocuments を呼び出して、このリストを表示できます。このポリシーでは、Systems Manager ドキュメントに対してユーザーが実行できるアクションも制限されます。

注記

ユーザーアカウントを作成し、後でそのアカウントにポリシーをアタッチします。

次の手順の IAM ポリシーでは、ユーザーはインスタンスで任意の Systems Manager アクションを実行できます。、信頼されている管理者のみに、このポリシーを割り当てます。他のすべてのユーザーの場合は、制限付き IAM ポリシーをこのセクションで説明されているとおりに作成するか、AmazonSSMReadOnlyAccess ポリシーを使用します。

Systems Manager 用の IAM ユーザーポリシーを作成するには

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Policies] を選択します。

  3. フィルタフィールドに、AmazonSSMFullAccess と入力します。

  4. AmazonSSMFullAccess ポリシーを選択します。システムにポリシーの [Policy Document] が表示されます。

  5. ポリシードキュメントのコンテンツをコピーします。

    注記

    ポリシードキュメントは管理ポリシーであるため、IAM コンソールでポリシードキュメントの内容を変更することはできませんが、コピーすることはできます。

  6. ナビゲーションペインで、[Policies] を選択します。

  7. [Create Policy] を選択します。

  8. [Create Your Own Policy] の横の [Select] を選択します。

  9. ポリシー名 (SystemsManagerUserFull など) および説明を入力し、先にコピーしたポリシーを [Policy Document] フィールドに貼り付けます。

  10. 必要に応じてポリシーを変更します。

  11. [Validate Policy] を選択します。ポリシーが有効であることを検証します。エラーが発生した場合は、始めかっこと終わりかっこ { } が含まれていることを確認してください。ポリシーを検証した後で、[Create Policy] を選択します。

制限付き IAM ユーザーポリシーの作成

制限付き IAM ユーザーポリシーを作成し、さらに Systems Manager へのアクセスを委任します。次に示す IAM ポリシーの例では、Systems Manager ドキュメントのリスト、これらのドキュメントの詳細表示、 ドキュメントの使用によるコマンド送信、送信したコマンドのキャンセルや詳細表示をユーザーに許可します。2 番目の Resource セクションの "arn:aws:ec2:us-east-1:*:instance/i-xxxxxxxxxxxxxxxxx" 項目で指定されているように、ユーザーには、3 つのインスタンスで ドキュメントを実行する権限があります。ユーザーが現在アクセスできる (AWS ユーザーアカウントに基づいて) 任意のインスタンスでコマンドを実行できるようにアクセス権をユーザーに付与するには、Resource セクションで "arn:aws:ec2:us-east-1:*:instance/*" と指定し、他のインスタンスリソースを削除します。

Resource セクションには、Amazon S3 ARN エントリが含まれています。

Copy
arn:aws:s3:::bucket_name

次のようにこのエントリをフォーマットすることもできます。

Copy
arn:aws:s3:::bucket_name/* -or- arn:aws:s3:::bucket_name/key_prefix_name
Copy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:ListDocuments", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeInstanceInformation" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ec2:us-east-1:*:instance/i-1234567890abcdef0", "arn:aws:ec2:us-east-1:*:instance/i-0598c7d356eba48d7", "arn:aws:ec2:us-east-1:*:instance/i-345678abcdef12345", "arn:aws:s3:::bucket_name", "arn:aws:ssm:us-east-1:*:document/restrictive_document" ] }, { "Action": [ "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:DescribeInstanceStatus", "Effect": "Allow", "Resource": "*" } ] }

IAM ユーザーポリシーの作成については、「管理ポリシーとインラインポリシー」を参照してください。

タスク 3: Systems Manager マネージドインスタンス用のロールを作成する

インスタンスロールでは、インスタンスが Systems Manager API とやり取りできるようになります。ロールでは、前に作成した インスタンスポリシーを使用します。

Systems Manager マネージドインスタンス用のロールを作成するには

  1. IAM コンソールのナビゲーションペインで、[Roles]、[Create New Role] の順に選択します。

  2. [Set Role Name] ページで、ロールの名前を入力します。SystemsManagerInstance など、インスタンスロールであるとわかる名前にします。[Next Step] を選択します。

  3. [Select Role Type] ページで、[Amazon EC2] の隣にある [Select] を選択します。

  4. [Attach Policy] ページで、タスク 1 で作成したインスタンスポリシーを選択します。[Next Step] を選択します。

  5. ロール情報を確認し、[Create Role] を選択します。

タスク 4: 信頼ポリシーを確認する

既存の EC2 インスタンスロールを使用する場合、ロールの信頼ポリシーに ec2.amazonaws.com が含まれていることを確認する必要があります。新しいロールを作成した場合は、信頼されたエンティティとして ec2.amazonaws.com を追加する必要があります。

信頼ポリシーを確認するには

  1. IAM コンソールのナビゲーションペインで、[Roles] を選択し、作成したサーバーロールを選択します。

  2. [Trust Relationships] を選択します。

  3. [Trusted Entities] の [Edit Trust Relationship] を選択します。

  4. 以下のポリシーをコピーして [Policy Document] フィールドに貼り付け、ポリシーを作成します。

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com", "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

タスク 5: ユーザーアカウントを作成する

ユーザーアカウントを使用すると、ユーザーはインスタンスで Systems Manager API を呼び出すことができます。このアカウントでは、前に作成した IAM ユーザーポリシーを使用します。

Systems Manager 用のユーザーアカウントを作成するには

  1. IAM コンソールの [Users] ページで、[Add User] を選択します。

  2. [Set user details] セクションで、ユーザー名 (SystemsManagerUserFullAccess など) を指定します。

  3. [Select AWS access type] セクションで、1 つまたは両方のアクセスオプションを選択します。[AWS Management Console access] を選択する場合、パスワードオプションも選択する必要があります。

  4. [Next: Permissions] を選択します。

  5. [Set permissions for] セクションで、[Attach existing policies directly] を選択します。

  6. フィルタフィールドに、先に作成したユーザーポリシーの名前を入力します。

  7. ポリシーの横のチェックボックスをオンにし、[Next:Review] を選択します。

  8. 詳細を確認し、[Create] を選択します。

作成したカスタムインスタンスロールを使用する Amazon EC2 インスタンスを作成します。詳細については、「タスク 3: Systems Manager ロールを使用する Amazon EC2 インスタンスを作成する」を参照してください。