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

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

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

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

任务 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 组指定运行任务时应使用的角色,作为向维护窗口注册这些任务的一部分。想要了解有关信息,请参阅向用户授予许可以将角色传递给Amazon服务中的IAM 用户指南.

要为允许注册维护窗口任务的用户配置权限 (Amazon CLI)

  1. 复制并粘贴以下内容Amazon 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权限与您的 Amazon Web Services 账户 . 为资源 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

      适用于用户名称下,指定向维护时段分配任务的 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

      适用于用户名称中,指定要阻止向维护时段分配任务的 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"