控制对维护时段的访问权限 (Tools for Windows PowerShell) - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

控制对维护时段的访问权限 (Tools for Windows PowerShell)

以下过程介绍如何使用 Amazon Tools for Windows PowerShell 为 Amazon Systems Manager 的功能 Maintenance Windows 创建所需的角色和权限。

任务 1:(可选)为维护时段创建自定义服务角色 (Tools for Windows PowerShell)

重要

如果您转而选择使用 Systems Manager 服务相关角色来让维护时段代表您运行任务,则不需要自定义服务角色。如果您的账户中没有 Systems Manager 服务相关角色,则可以在使用 Systems Manager 控制台创建或更新维护时段任务时创建该角色。有关更多信息,请参阅以下主题:

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

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

    New-IAMRole ` -RoleName "my-maintenance-window-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 : my-maintenance-window-role
  3. 运行以下命令将 AmazonSSMMaintenanceWindowRole 管理的策略附加到上一步中创建的角色。

    Register-IAMRolePolicy ` -RoleName "my-maintenance-window-role" ` -PolicyArn "arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole"

任务 2:为已获允许注册维护时段任务的用户配置权限 (PowerShell)

在将任务注册到维护时段时,您可以指定自定义服务角色或 Systems Manager 服务相关角色来运行实际任务操作。这是代表您运行任务时服务要代入的角色。在此之前,要注册任务本身,请将 IAM PassRole 策略分配给 IAM 用户账户或 IAM 组。这将允许 IAM 用户或 IAM 组指定运行任务时应使用的角色,作为将这些任务注册到维护时段的一部分。有关信息,请参阅 IAM 用户指南中的向用户授予将角色传递到 Amazon Service 的权限

  1. 将以下 Amazon Identity and Access Management IAM 策略复制并粘贴到文本编辑器中,然后使用以下名称和文件扩展名保存:mw-passrole-policy.json

    { "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 替换为 Amazon Web Services 账户 的 ID。为资源 arn:aws:iam::account-id:role/ 添加此权限允许组中的用户在创建维护时段任务时在控制台中查看和选择客户角色。为 arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ 添加此权限允许组中的用户在创建维护时段任务时在控制台中选择 Systems Manager 服务相关角色。

  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,请指定将向维护时段分配任务的 IAM 用户。对于 policy-name,请指定要用于标识策略的名称,如 my-iam-passrole-policy。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\passrole-policy.json

      注意

      如果您计划使用 Amazon Systems Manager 控制台注册维护时段的任务,则还必须将 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,请指定向维护时段分配任务的 IAM 组。对于 policy-name,请指定要用于标识策略的名称,如 my-iam-passrole-policy。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\passrole-policy.json

    注意

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

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

    Get-IAMGroupPolicies ` -GroupName "group-name"

任务 3:为未获允许注册维护时段任务的用户配置权限 (PowerShell)

  1. 将以下 IAM 策略复制并粘贴到文本编辑器中,然后使用以下名称和文件扩展名保存:deny-mw-tasks-policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "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,请指定要阻止其向维护时段分配任务的 IAM 用户。对于 policy-name,请指定要用于标识策略的名称,如 my-deny-mw-tasks-policy。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\deny-mw-tasks-policy.json

    • 对于 IAM 组

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

      对于 group-name,请指定要阻止向维护时段分配任务的 IAM 组。对于 policy-name,请指定要用于标识策略的名称,如 my-deny-mw-tasks-policy。对于 path-to-document,请指定步骤 1 中保存文件的路径。例如:C:\temp\deny-mw-tasks-policy.json

  4. 运行以下命令验证策略是否已分配给该组。

    Get-IAMGroupPolicies ` -GroupName "group-name"