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

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

使用控制台配置维护时段权限

以下过程介绍如何使用 Amazon 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),而不是使用通配符(*)。

    • 如果您不计划运行 Amazon Step Functions 任务,则可以移除 states 权限和 ARN。

    • 如果您不计划运行 Amazon Lambda 任务,则可以移除 lambda 权限和 ARN。

    • 如果您不计划运行自动化任务,则可以移除 ssm:GetAutomationExecutionssm:StartAutomationExecution 权限。

    • 添加要运行的任务可能需要的其他权限。例如,一些 自动化 操作使用 Amazon CloudFormation 堆栈。因此,权限 cloudformation:CreateStackcloudformation:DescribeStackscloudformation:DeleteStack 是必需的。

      另一个示例:自动化运行手册 AWS-CopySnapshot 需要权限来创建 Amazon Elastic Block Store(Amazon EBS)快照,因此,服务角色需要权限 ec2:CreateSnapshot

      有关自动化运行手册所需角色权限的信息,请参阅Amazon Systems Manager 自动化运行手册参考中的运行手册描述。

  6. 完成策略修订后,选择 Next: Tags(下一步:标签)。

  7. (可选)添加一个或多个标签键值对,以组织、跟踪或控制此策略的访问,然后选择 Next: Review (下一步:审核)

  8. 对于 Name(名称),输入一个名称以将此标识为您创建的 Maintenance Windows 服务角色将使用的策略。例如:my-maintenance-window-role-policy

  9. 选择 Create policy(创建策略),并记下为此策略指定的名称。您将在下一过程任务 2:为维护时段创建自定义服务角色(控制台)中引用它。

任务 2:为维护时段创建自定义服务角色(控制台)

使用以下过程为 Maintenance Windows 创建自定义服务角色,以便 Systems Manager 可以代表您运行 Maintenance Windows 任务。您会将您在上一任务中创建的策略附加到您创建的自定义服务角色。

重要

以前,Systems Manager 控制台允许您选择 Amazon 托管式 IAM 服务相关角色 AWSServiceRoleForAmazonSSM,以用作任务的维护角色。现在不再建议将此角色及其相关策略 AmazonSSMServiceRolePolicy 用于维护时段任务。如果您目前在将此角色用于维护时段任务,我们建议您停止使用它。而应创建您自己的 IAM 角色,以便您的维护时段任务运行时在 Systems Manager 与其他 Amazon Web Services之间进行通信。

创建自定义服务角色(控制台)
  1. 访问 https://console.aws.amazon.com/iam/,打开 IAM 控制台。

  2. 在导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  3. 对于 Select trusted entity(选择可信实体),完成以下选择:

    1. 对于可信实体类型,选择 Amazon 服务

    2. 对于其他 Amazon 服务的应用场景,选择 Systems Manager

    3. 选择 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. (可选)添加一个或多个标签键值对,以组织、跟踪或控制此角色的访问,然后选择 Next: Review (下一步:审核)

  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 用户指南》中的向用户授予将角色传递给 Amazon Web Service的权限

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

如果将 IAM 实体(用户、角色或组)设置为拥有管理员权限,则该用户或角色将有权访问“维护时段”。对于没有管理员权限的 IAM 实体,管理员必须向 IAM 实体授予以下权限。以下是将任务注册到维护时段所需的最低权限:

  • AmazonSSMFullAccess 托管策略,或提供类似权限的策略。

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

  6. 选择Review policy(查看策略)

  7. Review policy (审核策略) 页面上的 Name (名称) 框中,输入名称以标识此 PassRole 策略,例如 my-group-iam-passrole-policy,然后选择 Create 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. 选择Review policy(查看策略)

  7. Review policy (查看策略) 页面上,对于 Name (名称),输入名称以标识此策略,例如 my-groups-deny-mw-tasks-policy,然后选择 Create policy (创建策略)