メンテナンスウィンドウへのアクセスの制御 (コンソール) - AWS Systems Manager

メンテナンスウィンドウへのアクセスの制御 (コンソール)

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

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

Systems Manager がユーザーに代わってタスクを実行できるように、Systems Manager の一機能である Maintenance Windows のカスタムサービスロールを作成するには、次の手順に従います。

重要

Systems Manager サービスにリンクされたロールを使用してユーザーの代わりにメンテナンスウィンドウでタスクを実行する場合、カスタムサービスロールは必要ありません。アカウントに Systems Manager サービスにリンクされたロールがない場合は、Systems Manager コンソールを使用してメンテナンスウィンドウタスクを作成または更新するときに、そのロールを作成できます。詳細については、以下のトピックを参照してください。

カスタムサービスロールを作成するには (コンソール)

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. 以下の選択を行います。

    1. [Select type of trusted entity] (信頼されたエンティティの種類を選択) エリア: [AWS service] (AWS のサービス)

    2. [Choose a use case] (ユースケースの選択) エリア: [Systems Manager]

    3. [Select your use case] (ユースケースの選択) エリア: [Systems Manager]

      注記

      メインテナンスウィンドウのみで使用するカスタムロールを作成するには、[Systems Manager - Inventory and Maintenance Windows (Systems Manager - インベントリとメンテナンスウィンドウ)] ではなく、[Systems Manager] オプションを選択します。[Systems Manager - Inventory and Maintenance Windows (Systems Manager - インベントリとメンテナンスウィンドウ)] を選択すると、複数の Systems Manager 機能で使用するサービスリンクロールが作成されます。

  4. [Next: Permissions (次へ: アクセス許可)] を選択します。

  5. 検索ボックスに「AmazonSSMMaintenanceWindowRole」を入力し、[AmazonSSMMaintenanceWindowRole] の横にあるボックスを選択した上で、[Next: Tags] (次へ: タグ) をクリックします。

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

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

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

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

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

  11. [Trust relationships] タブを選択し、続いて [Edit trust relationship] を選択します。

  12. [ポリシードキュメント] フィールドに次のポリシーが表示されていることを確認します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  13. [Update Trust Policy] を選択し、[Summary] ページのロール名と [Role ARN] の値をコピーまたはメモします。この情報は、メンテナンスウィンドウを作成するときに指定します。

  14. (オプション) Amazon Simple Notification Service (Amazon SNS) を使用してコマンドステータスに関する通知を送信するようにメンテナンスウィンドウを設定する場合は、Systems Manager の Run Command タスクで実行する際に以下を行います。

    1. [Permissions] タブを選択します。

    2. [Add inline policy] を選択し、次に [JSON] タブを選択します

    3. [Policy Document] でデフォルトの内容を以下に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws::iam::account-id:role/my-sns-access-role" } ] }

      account-id は、AWS アカウントの 12 桁の識別子を 123456789012 形式で表します。

      my-sns-access-role は、メンテナンスウィンドウに関連する Amazon SNS 通知の送信に使用する既存の AWS Identity and Access Management (IAM) ロールを表します。.

      SNS 通知の送信に使用する IAM ロールの作成に関する情報など、Systems Manager の Amazon SNS 通知設定の詳細については、「Amazon SNS 通知を使用した Systems Manager のステータス変更のモニタリング」を参照してください。

      注記

      この ARN は、Systems Manager コンソールで [Register run command task] ページの [IAM Role] リストから選択します。詳細については、メンテナンスウィンドウにタスクを割り当てる (コンソール) を参照してください。Systems Manager API では、この ARN は、SendCommand リクエストの ServiceRoleArn の値として入力されます。

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

    5. [名前] に、Amazon SNS 通知の送信を許可するポリシーとして、これを識別する名前を入力します。

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

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

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

iam:Passrole アクセス許可を個別のユーザーまたはグループに割り当てるかどうかに応じて、以下のいずれかの手順を使用して、メンテナンスウィンドウによるタスクの登録に最低限必要なアクセス許可を付与します。

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

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [ユーザー] を選択し、更新するユーザーアカウントの名前を選択します。

  3. [Permissions] (アクセス許可) タブのポリシーリストで、AmazonSSMFullAccess ポリシーが表示されていること、または Systems Manager API を呼び出す権限を IAM ユーザーに付与する同等のポリシーがあることを確認します。アクセス許可を追加します (まだ含まれていない場合)。詳細については、IAM ユーザーガイド の「IAM ID 許可の追加と削除」を参照してください。

  4. [Add 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-iam-passrole-policy など)、[ポリシーの作成] を選択します。

メンテナンスウィンドウタスクの登録を許可するグループのアクセス許可を設定するには (コンソール)

  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 など)、[ポリシーの作成] を選択します。

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

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

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

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [ユーザー] を選択し、更新するユーザーアカウントの名前を選択します。

  3. [Add inline policy] を選択し、次に [JSON] タブを選択します

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

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

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

メンテナンスウィンドウタスクの登録を許可されていないグループのアクセス許可を設定するには (コンソール)

  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 など)、[ポリシーの作成] を選択します。