AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

控制对Maintenance Windows的访问 (Tools for Windows PowerShell)

以下过程介绍如何使用 Tools for Windows PowerShell 来创建Maintenance Windows所需的角色和权限。

(可选)任务 1:为Maintenance Window创建自定义服务角色

重要

A custom service role is not required if you choose to use a Systems Manager service-linked role to let Maintenance Windows run tasks on your behalf instead. If you do not have a Systems Manager service-linked role in your account, you can create it when you create or update a Maintenance Window task using the Systems Manager console. For more information, see the following topics:

  1. 将以下信任策略复制并粘贴到文本文件中。使用以下名称和文件扩展名保存此文件:mw-role-trust-policy.json

    注意

    仅当要使用 Amazon SNS 发送与通过 SendCommand API 运行的Maintenance Window任务相关的通知时,才需要 "sns.amazonaws.com"

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "ssm.amazonaws.com", "sns.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
  2. 打开 Tools for Windows PowerShell 并运行以下命令来创建角色 (其名称将此角色标识为Maintenance Window角色),例如 my-maintenance-window-role。该角色使用前一步中创建的策略。

    New-IAMRole -RoleName "mw-task-role" -AssumeRolePolicyDocument (Get-Content -raw .\mw-role-trust-policy.json)

    系统将返回类似于以下内容的信息。

    Arn : arn:aws:iam::123456789012:role/mw-task-role AssumeRolePolicyDocument : ExampleDoc12345678 CreateDate : 4/4/2017 11:24:43 Path : / RoleId : AROAIIZKPBKS2LEXAMPLE RoleName : mw-task-role
  3. 运行以下命令将 AmazonSSMMaintenanceWindowRole 管理的策略附加到上一步中创建的角色。

    Register-IAMRolePolicy -RoleName mw-task-role -PolicyArn arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole

任务 2:将 IAM PassRole 策略分配到 IAM 用户或组

When you register a task with a Maintenance Window, you specify either a custom service role or a Systems Manager service-linked role to run the actual task operations. This is the role that the service will assume when it runs tasks on your behalf. Before that, to register the task itself, you must assign the IAM PassRole policy to an IAM user account or an IAM group. This allows the IAM user or IAM group to specify, as part of registering those tasks with the Maintenance Window, the role that should be used when running tasks.

  1. 将以下 IAM 策略复制并粘贴到文本编辑器中,并使用 .json 文件扩展名保存文件。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1491345526000", "Effect":"Allow", "Action":[ "iam:GetRole", "iam:PassRole", "ssm:RegisterTaskWithMaintenanceWindow" ], "Resource":[ "*" ] } ] }
  2. 打开 Tools for Windows PowerShell。

  3. 根据您是否要将权限分配到 IAM; 用户或组,运行以下任一命令。

    • 对于 IAM 用户

      Write-IAMUserPolicy -UserName user-name -PolicyDocument (Get-Content -raw path-to-document) -PolicyName policy-name

      对于 user-name,指定将向Maintenance Windows分配任务的 IAM 用户。对于 policy-name,指定要用于标识策略的名称。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\passrole-policy.json

      注意

      如果您计划使用 AWS Systems Manager 控制台注册Maintenance Windows的任务,则还必须将 AmazonSSMFullAccess 策略分配给您的用户账户。运行以下命令将此策略分配给您的账户。

      Register-IAMUserPolicy -UserName user-name -PolicyArn arn:aws:iam::aws:policy/AmazonSSMFullAccess
    • 对于 IAM 组:

      Write-IAMGroupPolicy -GroupName group-name -PolicyDocument (Get-Content -raw path-to-document) -PolicyName policy-name

      对于 group-name,指定将向Maintenance Windows分配任务的 IAM 组。对于 policy-name,指定要用于标识策略的名称。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\passrole-policy.json

    注意

    如果您计划使用 AWS Systems Manager 控制台注册Maintenance Windows的任务,则还必须将 AmazonSSMFullAccess 策略分配给您的用户账户。运行以下命令将此策略分配给您的组。

    Register-IAMGroupPolicy -GroupName group-name -PolicyArn arn:aws:iam::aws:policy/AmazonSSMFullAccess
  4. 运行以下命令验证策略是否已分配给该组。

    Get-IAMGroupPolicies -GroupName group-name