Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

控制对维护时段的访问权限

使用以下方法之一,通过配置安全角色和权限来控制对维护时段的访问权限。

使用 AWS 控制台控制对维护时段的访问权限

以下过程介绍如何使用 Amazon EC2 控制台来创建维护时段所需的角色和权限。

为 Systems Manager 创建 IAM 角色

使用以下过程创建角色,以便 Systems Manager 可以在维护时段代表您执行任务。

为维护时段创建 IAM 角色

  1. Open the IAM console at https://console.amazonaws.cn/iam/.

  2. 在导航窗格中选择 Roles,然后选择 Create New Role

  3. 步骤 1:选择角色类型中,选择 Amazon EC2。系统会跳过 Step 2: Establish Trust,因为这是一个托管策略。

  4. Step 3: Attach Policy 中,请选择 AmazonSSMMaintenanceWindowRole,然后选择 Next Step

  5. Step 4: Set role name and review 中,输入用于将此角色标识为维护时段角色的名称。

  6. 选择 Create Role。系统将让您返回到 Roles 页。

  7. 找到刚刚创建的角色,然后双击它。

  8. 选择 Trust Relationships 选项卡,然后选择 Edit Trust Relationship

  9. 删除当前策略,然后将下面的策略复制并粘贴到 Policy Document 字段中:

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":[ "ec2.amazonaws.com", "ssm.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
  10. 选择 Update Trust Policy

  11. 复制或记下该角色名称和 Role ARN。当您创建维护时段时,将指定该信息。

将 IAM PassRole 策略分配给 IAM 用户账户

在注册维护时段的任务时,需要指定在上一步中创建的角色。这是代表您运行任务时服务要代入的角色。要注册任务,您必须将 IAM PassRole 策略分配给 IAM 用户账户。以下过程中的策略提供了注册维护时段的任务所需的最低权限。

将 IAM PassRole 策略分配给 IAM 用户账户

  1. 在 IAM 控制台导航窗格中,选择 Users,然后选择您要更新的用户账户。

  2. 在策略列表中,验证是否已列出 AmazonSSMFullAccess 策略或是否存在可向 IAM 用户授予调用 Systems Manager API 的权限的类似策略。

  3. 选择添加内联策略

  4. Set Permissions 页面上,选择 Policy Generator,然后选择 Select

  5. 验证 Effect 是否已设置为 Allow

  6. AWS Services 中选择 AWS Identity and Access Management

  7. 操作中,选择 PassRole

  8. Amazon 资源名称 (ARN) 字段中,粘贴您在之前步骤中所创建的角色 ARN。

  9. 选择 Add Statement,然后选择 Next Step

  10. Review Policy 页面上,选择 Apply Policy

使用 AWS CLI 控制对维护时段的访问权限

借助以下步骤使用 AWS CLI 创建维护时段的 IAM 角色。

为维护时段创建 IAM 角色

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

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
  2. 打开 AWS CLI 并执行以下命令,以创建名为 mw-task-role 的维护时段角色。此命令将上一步中创建的策略分配给该角色。

    Copy
    aws iam create-role --role-name mw-task-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",
                         "ec2.amazonaws.com"
                      ]
                   }
                }
             ]
          },
          "RoleId":"AROAIIZKPBKS2LEXAMPLE",
          "CreateDate":"2017-04-04T03:40:17.373Z",
          "RoleName":"mw-task-role",
          "Path":"/",
          "Arn":"arn:aws:iam::123456789012:role/mw-task-role"
       }
    }

    注意

    记录 RoleNameArn。在您创建维护时段时,将指定这些。

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

    Copy
    aws iam attach-role-policy --role-name mw-task-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole

使用 AWS CLI 将 IAM PassRole 策略分配给 IAM 用户账户

在注册维护时段的任务时,需要指定在上一步中创建的角色。这是代表您运行任务时服务要代入的角色。要注册任务,您必须将 IAM PassRole 策略分配给 IAM 用户账户。以下过程中的策略提供了注册维护时段的任务所需的最低权限。

将 IAM PassRole 策略分配给 IAM 用户账户

  1. 将以下 IAM 策略复制并粘贴到文本编辑器中,并使用 .json 文件扩展名保存文件。

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1491345526000", "Effect":"Allow", "Action":[ "iam:GetRole", "iam:PassRole", "ssm:RegisterTaskWithMaintenanceWindow" ], "Resource":[ "*" ] } ] }
  2. 打开 AWS CLI。

  3. 执行下面的命令。对于 user-name,请指定为维护时段分配任务的 IAM 用户。对于 policy-document,请指定步骤 1 中所保存文件的路径。

    Copy
    aws iam put-user-policy --user-name name of user --policy-name a name for the policy --policy-document path to document, for example: file://C:\Temp\passrole.json

    注意

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

    Copy
    aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess --user-name IAM account name
  4. 执行以下命令验证策略是否已分配给该用户。

    Copy
    aws iam list-user-policies --user-name name of user

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

通过以下步骤使用 Tools for Windows PowerShell 创建维护时段的 IAM 角色。

为维护时段创建 IAM 角色

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

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
  2. 打开 Tools for Windows PowerShell 并执行以下命令以创建名为 mw-task-role 的角色。该角色使用前一步中创建的策略。

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

    Copy
    Register-IAMRolePolicy -RoleName mw-task-role -PolicyArn arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole

使用 Tools for Windows PowerShell 将 IAM PassRole 策略分配给 IAM 用户账户

在注册维护时段的任务时,需要指定在上一步中创建的角色。这是代表您运行任务时服务要代入的角色。要注册任务,您必须将 IAM PassRole 策略分配给 IAM 用户账户。以下过程中的策略提供了注册维护时段的任务所需的最低权限。

将 IAM PassRole 策略分配给 IAM 用户账户

  1. 将以下 IAM 策略复制并粘贴到文本编辑器中,并使用 .json 文件扩展名保存文件。

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1491345526000", "Effect":"Allow", "Action":[ "iam:GetRole", "iam:PassRole", "ssm:RegisterTaskWithMaintenanceWindow" ], "Resource":[ "*" ] } ] }
  2. 打开 Tools for Windows PowerShell。

  3. 执行下面的命令。对于 user-name,请指定为维护时段分配任务的 IAM 用户。对于 policy-document,请指定步骤 1 中所保存文件的路径。

    Copy
    Write-IAMUserPolicy -UserName name of IAM user -PolicyDocument (Get-Content -raw path to document, for example: C:\temp\passrole-policy.json) -PolicyName a name for the policy

    注意

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

    Copy
    Register-IAMUserPolicy -UserName IAM account name -PolicyArn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess
  4. 执行以下命令验证策略是否已分配给该用户。

    Copy
    Get-IAMUserPolicies -UserName name of user