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

控制对维护时段的访问权限 (Amazon CLI)

以下过程介绍如何使用 Amazon Command Line Interface (Amazon CLI) 为 Amazon Systems Manager 的功能 Maintenance Windows 创建所需角色和权限。

任务 1:(可选)为维护时段创建自定义服务角色 (Amazon CLI)

重要

如果您转而选择使用 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. 打开 Amazon CLI 并在放置 mw-role-trust-policy.json 的目录中运行以下命令,以创建一个名为 my-maintenance-window-role 的维护时段角色。此命令将上一步中创建的策略分配给该角色。

    Linux & macOS
    aws iam create-role \ --role-name "my-maintenance-window-role" \ --assume-role-policy-document file://mw-role-trust-policy.json
    Windows
    aws iam create-role ^ --role-name "my-maintenance-window-role" ^ --assume-role-policy-document file://mw-role-trust-policy.json

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

    {
        "Role": {
            "AssumeRolePolicyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Action": "sts:AssumeRole",
                        "Effect": "Allow",
                        "Principal": {
                            "Service": "ssm.amazonaws.com"
                        }
                    }
                ]
            },
            "RoleId": "AROAIIZKPBKS2LEXAMPLE",
            "CreateDate": "2017-04-04T03:40:17.373Z",
            "RoleName": "my-maintenance-window-role",
            "Path": "/",
            "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role"
        }
    }
    注意

    记下 RoleNameArn 值。您可以在创建使用此自定义角色的维护时段时指定这些值。

  3. 运行以下命令,将 AmazonSSMMaintenanceWindowRole 托管策略附加到在步骤 2 中创建的角色。

    Linux & macOS
    aws iam attach-role-policy \ --role-name "my-maintenance-window-role" \ --policy-arn "arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole"
    Windows
    aws iam attach-role-policy ^ --role-name "my-maintenance-window-role" ^ --policy-arn "arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole"

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

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

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

  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. 打开 Amazon CLI。

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

    • 对于 IAM 用户

      Linux & macOS
      aws iam put-user-policy \ --user-name "user-name" \ --policy-name "policy-name" \ --policy-document file://path-to-document
      Windows
      aws iam put-user-policy ^ --user-name "user-name" ^ --policy-name "policy-name" ^ --policy-document file://path-to-document

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

      注意

      要授予用户使用 Systems Manager 控制台为维护时段注册任务的访问权限,您还必须将 AmazonSSMFullAccess 策略分配给您的用户账户(或为涵盖维护时段任务的 Systems Manager 提供较小访问权限集的 IAM 策略)。有关更多信息,请参阅创建用户组创建用户和分配权限。运行以下命令将 AmazonSSMFullAccess 策略分配给您的账户。

      Linux & macOS
      aws iam attach-user-policy \ --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \ --user-name "user-name"
      Windows
      aws iam attach-user-policy ^ --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^ --user-name "user-name"
    • 对于 IAM 组

      Linux & macOS
      aws iam put-group-policy \ --group-name "group-name" \ --policy-name "policy-name" \ --policy-document file://path-to-document
      Windows
      aws iam put-group-policy ^ --group-name "group-name" ^ --policy-name "policy-name" ^ --policy-document file://path-to-document

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

      注意

      要授予组成员使用 Systems Manager 控制台为维护时段注册任务的访问权限,还必须将 AmazonSSMFullAccess 策略分配给组。运行以下命令将此策略分配给您的组。

      Linux & macOS
      aws iam attach-group-policy \ --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \ --group-name "group-name"
      Windows
      aws iam attach-group-policy ^ --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^ --group-name "group-name"
  4. 运行以下命令验证策略是否已分配给该组。

    Linux & macOS
    aws iam list-group-policies \ --group-name "group-name"
    Windows
    aws iam list-group-policies ^ --group-name "group-name"

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  2. 打开 Amazon CLI。

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

    • 对于 IAM 用户

      Linux & macOS
      aws iam put-user-policy \ --user-name "user-name" \ --policy-name "policy-name" \ --policy-document file://path-to-document
      Windows
      aws iam put-user-policy ^ --user-name "user-name" ^ --policy-name "policy-name" ^ --policy-document file://path-to-document

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

    • 对于 IAM 组

      Linux & macOS
      aws iam put-group-policy \ --group-name "group-name" \ --policy-name "policy-name" \ --policy-document file://path-to-document
      Windows
      aws iam put-group-policy ^ --group-name "group-name" ^ --policy-name "policy-name" ^ --policy-document file://path-to-document

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

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

    Linux & macOS
    aws iam list-group-policies \ --group-name "group-name"
    Windows
    aws iam list-group-policies ^ --group-name "group-name"