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

方法 2:使用 IAM 为 Automation 配置角色

Automation 需要 IAM 实例配置文件角色和服务角色。实例配置文件角色为 Automation 提供在您实例上执行操作的权限,例如执行命令或启动和停止服务。服务角色 (也称为代入角色) 为 Automation 提供权限,用于代入您的 IAM 角色和代表您执行操作。例如,服务角色允许 Automation 在 Automation 文档中执行 aws:createImage 操作时创建新的 Amazon Machine Image (AMI)。您可以使用 IAM 控制台为 Systems Manager Automation 创建 IAM 实例配置文件角色和服务角色,如此部分中所述。

注意

您还可以在 Automation 文档中使用这些角色及其 Amazon 资源名称 (ARN),例如 AWS-UpdateLinuxAmi 文档。在 Automation 文档中使用这些角色或其 ARN,可以让 Automation 在您的托管实例上执行操作、启动新实例以及代表您执行操作。要查看示例,请参阅 Automation CLI 演练:修补 Linux AMI

任务 1:为 Automation 创建 IAM 角色

Systems Manager Automation 需要拥有权限才可代表您执行您为该服务指定的操作。它通过代入您的 IAM 角色来获取这些权限。通过执行以下步骤,您可以:

  • 创建角色,使 Automation 可以在处理自动化文档时代表您执行任务。

  • 在 Automation 角色和 Systems Manager 之间建立信任关系

  • 为角色分配权限,以便您在自动化文档中引用 IAM 角色。

创建 IAM 角色并允许 Automation 代入该角色

  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 中,选择 AmazonSSMAutomationRole 托管策略。它们可提供相同的访问权限。

  5. Step 4: Set role name and review 中,输入一个名称,该名称将此角色标识为 Automation 角色。记下 Role NameRole ARN。在后面的步骤中,当您将 iam:PassRole 策略附加到您的 IAM 账户时,将指定该角色 ARN。您还需要在 Automation json 文档中指定角色名称和 ARN。

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

注意

AmazonSSMAutomationRole 策略会将 Automation 角色权限分配给您账户内 AWS Lambda 函数的子集。这些函数以“Automation”开头。如果您计划通过 Lambda 函数使用 Automation,则 Lambda ARN 必须使用以下格式:

Copy
"arn:aws:lambda:*:*:function:Automation*"

如果现有 Lambda 函数的 ARN 未使用此格式,您还必须为 Automation 角色附加额外的 Lambda 策略,例如 AWSLambdaRole 策略。其他策略或角色必须提供对 AWS 账户内 Lambda 函数更宽泛的访问权限。

任务 2:为 Automation 添加信任关系

使用以下过程配置信任 Automation 的角色策略。

为 Automation 添加信任关系

  1. 在 IAM 控制台中,找到刚刚创建的角色,然后双击它。

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

  3. 从现有策略中删除“ec2.amazonaws.com”(如果列出),然后添加“Service”:“ssm.amazonaws.com”,如下例所示:

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

  5. 复制或记下 Role ARN。您将需要在自动化文档中指定该 ARN。

任务 3:将 iam:PassRole 策略附加到您的 Automation 角色

使用以下过程将 iam:PassRole 策略附加到您的 Automation 角色。这使 Automation 服务能够传递您之前在执行期间创建的角色。

将 iam:PassRole 策略附加到您的 Automation 角色

  1. 在 IAM 控制台中,复制在任务 1 和 3 中创建的角色的 ARN。

  2. 找到您在任务 3 中创建的 Automation 角色并双击它。

  3. 选择 Permissions 选项卡。

  4. 内联策略部分,选择创建用户策略。如果您没有看到该按钮,请选择内联策略旁边的向下箭头,然后选择单击此处

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

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

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

  8. 操作中,选择 PassRole

  9. Amazon Resource Name (ARN) 字段中,粘贴您在任务 1 中创建的 Automation 角色 ARN。

  10. 选择 Add Statement

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

  12. 操作中,选择 PassRole

  13. Amazon Resource Name (ARN) 字段中,粘贴您在任务 3 中创建的 Automation 角色 ARN。

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

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

任务 4:配置用户对 Automation 的访问权限

使用以下过程配置用户账户,以使用 Automation。您选择的用户账户会拥有配置并执行 Automation 的权限。如果您需要创建新的用户账户,请参阅 IAM User Guide 中的在您的 AWS 账户中创建 IAM 用户

使用以下过程将您通过任务 5 创建的 iam:PassRole 策略添加到用户账户。使得用户账户能够将角色提交到 Automation。在此过程中,您还将配置账户,使用 AmazonSSMFullAccess policy 实现与 Systems Manager API 的通信。

将 iam:PassRole 策略附加到用户账户

  1. 在 IAM 导航窗格中,选择Users,然后双击您要配置的用户账户。

  2. Managed Policies 部分,验证是否已列出 AmazonSSMFullAccess 策略,或者是否存在可向账户授予对 SSM API 的权限的类似策略。

  3. 内联策略部分,选择创建用户策略。如果您没有看到该按钮,请选择内联策略旁边的向下箭头,然后选择单击此处

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

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

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

  7. 操作中,选择 PassRole

  8. Amazon Resource Name (ARN) 字段中,粘贴您在任务 3 中为 Automation 角色创建的 ARN。

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

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

您可以使用更严格的 IAM 用户策略进一步委派对 Automation 的访问权限。有关更多信息,请参阅 可选的访问权限配置