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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

控制对维护时段的访问权限(适用于 Windows PowerShell 的工具)

以下过程介绍了如何使用Amazon用于 Windows PowerShell 的工具,用于创建维护时段所需的角色和权限,这是Amazon Web Services Systems Manager。

Task 1:(可选)为维护时段创建自定义服务角色(适用于 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. 打开适用于 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"

Task 2:为允许注册维护窗口任务的用户配置权限 (PowerShell)

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "custom-role-arn" }, { "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/" } ] }

    Replace自定义角色 arn与之前创建的自定义维护时段角色的 Amazon 资源名称 (ARN) 一起使用,例如arn:aws:iam::123456789012:role/my-maintenance-window-role

    Replaceaccount-id在两个iam:ListRoles权限的 IDAmazon Web Services 账户。为资源 arn:aws:iam::account-id:role/ 添加此权限允许组中的用户在创建维护时段任务时在控制台中查看和选择客户角色。添加此权限arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/允许组中的用户在创建维护时段任务时在控制台中选择与 Systems Manager 服务相关的角色。

  2. 打开适用于 Windows PowerShell 的工具。

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

    • 对于 IAM 用户

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

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

      注意

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

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

    Get-IAMGroupPolicies ` -GroupName "group-name"

Task 3:为不允许注册维护窗口任务的用户配置权限 (PowerShell)

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  2. 打开适用于 Windows PowerShell 的工具。

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

    • 对于 IAM 用户

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

      适用于用户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"