コンソールを使用して、メンテナンスウィンドウのアクセス許可を設定します。 - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンソールを使用して、メンテナンスウィンドウのアクセス許可を設定します。

以下の手順では、AWS Systems Manager コンソールを使用して、メンテナンスウィンドウに必要なロールとアクセス許可を作成する方法を説明します。

タスク 1: カスタムメンテナンスウィンドウのサービスロール用にポリシーを作成する

次のポリシーを JSON 形式で使用して、メンテナンスウィンドウのロールで使用するポリシーを作成できます。後ほど タスク 2: メンテナンスウィンドウのカスタムサービスロールを作成する (コンソール) に作成するロールに、このポリシーをアタッチします。

重要

メンテナンスウィンドウで実行するタスクおよびタスクのタイプによっては、このポリシーのすべてのアクセス許可が必要ではなく、追加のアクセス許可を含める必要がある場合があります。

カスタムメンテナンスウィンドウのサービスロール用にポリシーを作成するには
  1. https://console.aws.amazon.com/iam/ で IAM コンソール を開きます。

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:SendCommand", "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetCommandInvocation", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:ListTagsForResource", "ssm:GetParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:*", "arn:aws:states:*:*:stateMachine:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*" ] }, { "Effect": "Allow", "Action": [ "resource-groups:ListGroups", "resource-groups:ListGroupResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  5. 必要に応じて、アカウントで実行するメンテナンスタスクの JSON コンテンツを変更します。変更した内容は、ユーザーが計画したオペレーションに固有のものです。

    例:

    • ワイルドカード (*) 修飾子を使用する代わりに、特定の関数およびステートマシンに Amazon リソースネーム (ARN) を指定できます。

    • AWS Step Functions タスクを実行する予定がない場合は、states のアクセス許可と (ARN) を削除できます。

    • AWS Lambda タスクを実行する予定がない場合は、lambda のアクセス許可と ARN を削除できます。

    • オートメーションタスクを実行する予定がない場合は、ssm:GetAutomationExecution および ssm:StartAutomationExecution のアクセス許可を削除できます。

    • タスクの実行に必要な追加のアクセス許可を追加します。たとえば、一部のオートメーションアクションは AWS CloudFormation スタックと連携します。そのため、cloudformation:CreateStackcloudformation:DescribeStacks、および cloudformation:DeleteStack のアクセス許可が必要です。

      別の例: オートメーションランブックの AWS-CopySnapshot では、Amazon Elastic Block Store (Amazon EBS) スナップショットを作成するためのアクセス許可が必要です。このため、サービスロールに許可 ec2:CreateSnapshot が必要です。

      オートメーションランブックで必要なロールの許可については、「AWS Systems Manager オートメーションランブックレファレンス」にあるランブックの説明を参照してください。

  6. ポリシーのリビジョンを完了したら、[Next: Tags] (次へ: タグ) をクリックします。

  7. (オプション) 1 つ以上のタグ/値ペアを追加して、このポリシーのアクセスを整理、追跡、または制御し、[次へ: 確認] を選択します。

  8. [Name] (名前) に、作成した Maintenance Windows のサービスロールが使用するポリシーとして識別する名前を入力します。例: my-maintenance-window-role-policy

  9. [Create policy] (ポリシーの作成) を選択し、ポリシーに指定した名前をメモします。次の手順、「タスク 2: メンテナンスウィンドウのカスタムサービスロールを作成する (コンソール)」で参照します。

タスク 2: メンテナンスウィンドウのカスタムサービスロールを作成する (コンソール)

以下の手順を使用して、Systems Manager がユーザーに代わって Maintenance Windows タスクを実行するための Maintenance Windows のカスタムサービスロールを作成します。このタスクでは、前のタスクで作成したポリシーを、作成したカスタムサービスロールにアタッチします。

重要

以前は、Systems Manager コンソールが、AWS マネージド IAM サービスリンクロール AWSServiceRoleForAmazonSSM を選択して、タスクのメンテナンスロールとして使用する機能を提供していました。メンテナンスウィンドウのタスクにおける、このロールとそれに関連するポリシーである AmazonSSMServiceRolePolicy の使用は推奨されなくなりました。このロールをメンテナンスウィンドウのタスクに使用している場合は、使用を中止することをお勧めします。代わりに、メンテナンスウィンドウのタスクが実行されたときに、Systems Manager と他の AWS のサービス間の通信を可能にする独自の IAM ロールを作成します。

カスタムサービスロールを作成するには (コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Roles] (ロール) を選択してから、[Create role] (ロールを作成する) を選択します。

  3. [Select trusted entity] (信頼できるエンティティを選択) で、次のように選択します。

    1. [Trusted entity type] (信頼できるエンティティタイプ) で、[AWS service] ( のサービス) を選択します。

    2. [Use cases for other AWS services] で、[Systems Manager] を選択します。

    3. 以下のイメージに示されている、[Systems Manager] を選択します。

      
                                        ユースケースとして選択した Systems Manager のオプションを示すスクリーンショット。
  4. [Next] (次へ) をクリックします。

  5. 検索ボックスに タスク 1: カスタムメンテナンスウィンドウのサービスロール用にポリシーを作成する で作成したポリシー名を入力します。名前の横にあるチェックボックスをオンにして、[Next] (次へ) を選択します。

  6. [Role name] (ロール名) に、このロールが Maintenance Windows ロールであることを識別できる名前を入力します。例: my-maintenance-window-role

  7. (オプション) デフォルトのロールの説明を変更して、このロールの目的を反映させます。例: Performs maintenance window tasks on your behalf

  8. (オプション) 1 つ以上のタグ/値ペアを追加して、このロールのアクセスを整理、追跡、または制御し、[次へ: 確認] を選択します。

  9. [Create role] (ロールの作成) を選択します。[Roles] (ロール) ページが再度表示されます。

  10. 作成したロールの名前を選択します。

  11. [Trust relationships] (信頼関係) タブをクリックし、次のポリシーが [Trusted entities] (信頼できるエンティティ) に表示されていることを確認します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  12. [Summary] (概要) エリアのロール名と [ARN] をコピーするか、書き留めます。アカウントのユーザーは、メンテナンスウィンドウを作成するときにこの情報を指定します。

タスク 3: メンテナンスウィンドウのタスクの登録を許可されたユーザーの、アクセス許可を設定する (コンソール)

メンテナンスウィンドウにタスクを登録する場合、実際のタスクオペレーションを実行するためのカスタムサービスロールまたは Systems Manager サービスにリンクされたロールを指定します。これは、サービスがユーザーに代わってタスクを実行するときに引き受けるロールです。その前に、タスク自体を登録するには、IAM PassRole ポリシーを IAM エンティティ (ユーザーまたはグループ) に割り当てます。これにより、これらのタスクをメンテナンスウィンドウに登録する一部としてタスクの実行時に使用するロールを指定することを IAM エンティティ (ユーザーまたはグループ) に許可します。詳細については、IAM ユーザーガイドの「AWS のサービスにロールを渡すアクセス権限をユーザーに付与する」を参照してください。

メンテナンスウィンドウタスクの登録を許可されているユーザーのアクセス許可を設定するには

IAM エンティティ (ユーザー、ロール、またはグループ) に管理者権限が設定されている場合、ユーザーまたはロールはメンテナンスウィンドウにアクセスできます。管理者権限のない IAM エンティティの場合、管理者は IAM エンティティに次の権限を付与する必要があります。タスクをメンテナンスウィンドウに登録するために必要な最低限の権限です。

  • AmazonSSMFullAccess マネージドポリシー、または同等のアクセス許可を付与するポリシー。

  • 次の iam:PassRole および iam:ListRoles のアクセス許可。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role は、前に作成したカスタムメンテナンスウィンドウロールの名前を表します。

    account-id は、AWS アカウント の ID を表します。リソース arn:aws:iam::account-id:role/ に対してこのアクセス許可を追加すると、ユーザーはメンテナンスウィンドウタスクを作成するときに、コンソールでカスタマーロールを表示および選択できます。arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ に対してこのアクセス許可を追加すると、ユーザーはメンテナンスウィンドウタスクを作成するときに、コンソールで Systems Manager サービスにリンクされたロールを選択できます。

    アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

メンテナンスウィンドウタスクの登録を許可するグループのアクセス許可を設定するには (コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. グループのリストで、iam:PassRole アクセス許可を割り当てる先のグループの名前を選択します。

  4. [Permissions] (アクセス許可) タブで [Add permissions, Create inline policy] (アクセス許可の追加、インラインポリシーの作成) をクリックしてから [JSON] タブを選択します。

  5. デフォルトのボックスの内容を以下に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role は、前に作成したカスタムメンテナンスウィンドウロールの名前を表します。

    account-id は、AWS アカウント の ID を表します。リソース arn:aws:iam::account-id:role/ に対してこのアクセス許可を追加すると、ユーザーはメンテナンスウィンドウタスクを作成するときに、コンソールでカスタマーロールを表示および選択できます。arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ に対してこのアクセス許可を追加すると、ユーザーはメンテナンスウィンドウタスクを作成するときに、コンソールで Systems Manager サービスにリンクされたロールを選択できます。

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

  7. [ポリシーの確認] ページで、この PassRole ポリシーを識別するための名前を [名前] ボックスに入力し (my-group-iam-passrole-policy など)、[ポリシーの作成] を選択します。

タスク 4: メンテナンスウィンドウタスクの登録を許可されていないユーザーのアクセス許可を設定する

個別のユーザーまたはグループに ssm:RegisterTaskWithMaintenanceWindow アクセス許可を拒否するかどうかに応じ、以下の手順のいずれかを使用して、ユーザーがメンテナンスウィンドウにタスクを登録できないようにします。

メンテナンスウィンドウタスクの登録を許可されていないユーザーのアクセス許可を設定するには
  • 管理者は IAM エンティティに次の制限を追加する必要があります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
メンテナンスウィンドウタスクの登録を許可されていないグループのアクセス許可を設定するには (コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. グループのリストで、ssm:RegisterTaskWithMaintenanceWindow アクセス許可を拒否する元のグループの名前を選択します。

  4. [Permissions] (アクセス許可) タブで、[Add permissions, Create inline policy] (アクセス許可の追加、インラインポリシーの作成) をクリックします。

  5. [JSON] タブを選択し、ボックスのデフォルトの内容を以下に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  6. [ポリシーの確認] を選択します。

  7. [ポリシーの確認] ページの [名前] ボックスに、このポリシーを識別するための名前を入力し (my-groups-deny-mw-tasks-policy など)、[ポリシーの作成] を選択します。