AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 2:为 Systems Manager 创建 IAM 实例配置文件

默认情况下,AWS Systems Manager 没有在您的实例上执行操作的权限。您必须通过使用 AWS Identity and Access Management (IAM) 实例配置文件来授予访问权限。实例配置文件是一个容器,可在启动时将 IAM 角色信息传递给 Amazon Elastic Compute Cloud (Amazon EC2) 实例。您可以将一个或多个定义所需权限的 IAM 策略附加到新角色或已创建的角色,以便为 Systems Manager 创建实例配置文件。

注意

这种将多个必需和可选 IAM 策略添加到实例配置文件的方法替代使用单个托管策略 AmazonEC2RoleforSSM 的做法。

在创建实例配置文件后,您可以将其附加到要与 Systems Manager 一起使用的实例,如以下步骤(步骤 5:将 IAM 实例配置文件附加到 Amazon EC2 实例)中所述。

请注意以下有关创建 IAM 实例配置文件的详细信息:

  • 如果要在混合环境中为 Systems Manager 配置服务器或虚拟机 (VM),则无需为它们创建实例配置文件。相反,您必须将服务器和虚拟机配置为使用 IAM 服务角色。有关更多信息,请参阅为混合环境创建 IAM 服务角色

  • 如果更改 IAM 实例配置文件,凭证实例可能需要一些时间才能刷新。刷新后 SSM 代理才会处理请求。要加快刷新过程,您可以重新启动 SSM 代理或重新启动实例。

关于 Systems Manager 实例配置文件的策略

本节介绍可添加到 Systems Manager 的 EC2 实例配置文件的策略。需要具有第一个策略 AmazonSSMManagedInstanceCore,才能使用 Systems Manager 管理实例。根据您的操作计划,您可能需要使用其他三个策略中的一个或多个策略。

策略:AmazonSSMManagedInstanceCore

必需。

此 AWS 托管策略使实例能够使用 Systems Manager 服务核心功能。

策略:用于 Amazon S3 存储桶访问的自定义策略

在以下任一情况下是必需的:

  • 情况 1:您使用 VPC 终端节点将 VPC 私下连接到支持的 AWS 服务以及 PrivateLink 支持的 VPC 终端节点服务。

    SSM 代理是在实例上安装的 Amazon 软件,用于执行 Systems Manager 任务。该代理需要访问 Amazon 拥有的特定 S3 存储桶。可以公开访问这些存储桶。不过,在私有 VPC 终端节点环境中,您必须明确提供这些存储桶的访问权限。有关更多信息,请参阅第 6 步:(可选)创建 Virtual Private Cloud 终端节点Amazon VPC User Guide 中的 VPC 终端节点

  • 情况 2:您打算将创建的 Amazon S3 存储桶作为 Systems Manager 操作的一部分。

    Systems Manager 的 EC2 实例配置文件必须授予您拥有的 S3 存储桶的访问权限,以执行如下任务:

    • 访问在 S3 存储桶中存储的脚本,以在您运行的命令中使用。

    • 存储 Run Command 命令或 Session Manager 会话的完整输出。

    • 访问自定义补丁列表,以便在修补实例时使用。

注意

在 S3 存储桶中保存输出日志数据是可选的,但如果您决定使用该功能,我们建议您在开始执行 Systems Manager 配置过程时设置该功能。有关更多信息,请参阅 Amazon Simple Storage Service Getting Started Guide 中的创建存储桶

策略:AmazonSSMDirectoryServiceAccess

只有在您打算将 Windows Server 的 EC2 实例加入 Microsoft AD 目录时才需要。

该 AWS 托管策略允许 SSM 代理 代表您访问 AWS Directory Service,以处理托管实例加入域的请求。有关更多信息,请参阅 AWS Directory Service Administration Guide 中的无缝加入 Windows EC2 实例

策略:CloudWatchAgentServerPolicy

只有在您打算在实例上安装并运行 CloudWatch 代理 以读取实例上的指标和日志数据并将其写入到 Amazon CloudWatch 时才需要。这些操作可以帮助您监控、分析和快速响应 AWS 资源问题或更改。

只有在使用 CloudWatch 功能(如 CloudWatch Events 或 CloudWatch Logs)时,实例配置文件才需要使用该策略。(您还可以创建限制性更强的策略,例如,限制对特定 CloudWatch Logs 日志流的写入请访问。)

注意

使用 CloudWatch 功能是可选的,但如果您决定使用这些功能,我们建议您在开始执行 Systems Manager 配置过程时设置这些功能。有关更多信息,请参阅 Amazon CloudWatch Events User GuideAmazon CloudWatch Logs User Guide

任务1:(可选)为实例配置文件创建自定义 S3 存储桶策略

只有在 Systems Manager 操作中使用 VPC 终端节点或使用您自己的 S3 存储桶时,才需要为实例配置文件创建自定义 S3 存储桶策略。

有关您在下面的策略中提供访问权限的 AWS 托管 S3 存储桶的信息,请参阅关于 SSM 代理 的最低 S3 存储桶权限

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

  2. 在导航窗格中选择策略,然后选择创建策略

  3. 选择 JSON 选项卡,并将默认文本替换为以下内容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::aws-ssm-region/*", "arn:aws:s3:::aws-windows-downloads-region/*", "arn:aws:s3:::amazon-ssm-region/*", "arn:aws:s3:::amazon-ssm-packages-region/*", "arn:aws:s3:::region-birdwatcher-prod/*", "arn:aws:s3:::patch-baseline-snapshot-region/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::my-bucket-name/*" } ] }

    1 只有在使用 VPC 终端节点时,才需要使用第一个 Statement 元素。

    2 只有在 Systems Manager 操作中使用您创建的 S3 存储桶时,才需要使用第二个 Statement 元素。

    3 只有在您打算为其他账户中的 S3 存储桶提供跨账户访问支持时,才需要使用 PutObjectAcl 访问控制列表权限。

  4. 如果在操作中使用 VPC 终端节点,请执行以下操作:

    在第一个 Statement 元素中,将每个 region 占位符替换为将使用该策略的 AWS 区域的标识符。例如,将 us-east-2 用于 US East (Ohio) Region。有关受支持区域 值的列表,请参阅 AWS General ReferenceAWS Systems Manager 区域和终端节点表主题的区域列。

    重要

    我们建议您避免在该策略中使用通配符 (*) 以替代特定区域。例如,使用 arn:aws:s3:::aws-ssm-us-east-2/* 而不使用 arn:aws:s3:::aws-ssm-*/*。使用通配符可能会提供对您不打算授予访问权限的 Amazon S3 存储桶的访问。如果要将实例配置文件用于多个区域,我们建议每个区域重复使用第一个 Statement 元素。

    -或者-

    如果在操作中不使用 VPC 终端节点,您可以删除第一个 Statement 元素。

  5. 如果在 Systems Manager 操作中使用您自己的 S3 存储桶,请执行以下操作:

    在第二个 Statement 元素中,将 my-bucket-name 替换为您的账户中的 S3 存储桶的名称。将在 Systems Manager 操作中使用该存储桶。它将 "arn:aws:s3:::my-bucket-name/*" 作为资源,以便为存储桶中的对象提供权限。有关为存储桶或存储桶中的对象提供权限的更多信息,请参阅 Amazon Simple Storage Service Developer Guide 中的在策略中指定权限主题以及 AWS 博客文章 IAM Policies and Bucket Policies and ACLs! Oh, My! (Controlling Access to S3 Resources)

    注意

    如果您使用多个存储桶,请提供每个存储桶的 ARN。例如,要提供存储桶的权限:

    "Resource": [ "arn:aws:s3:::my-first-bucket-name/*", "arn:aws:s3:::my-second-bucket-name/*" ]

    -或者-

    如果在 Systems Manager 操作中不使用您自己的 S3 存储桶,您可以删除第二个 Statement 元素。

  6. 选择查看策略

  7. 对于名称,请输入一个名称以标识该策略,例如 SSMInstanceProfileS3Policy 或您喜欢的其他名称。

  8. 选择 Create policy

任务 2:为 Systems Manager 实例配置文件添加权限(控制台)

根据您是为实例配置文件创建新角色还是在现有角色中添加所需的权限,请使用以下过程之一。

为 Systems Manager 托管实例创建实例配置文件(控制台)

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

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 选择受信任实体的类型下,选择 AWS 服务

  4. 在紧靠选择将使用此角色的服务下面,选择 EC2,然后选择下一步:权限

  5. 附加的权限策略页面上,执行以下操作:

    • 选中所需的 AmazonSSMManagedInstanceCore 托管策略旁边的框。

    • 如果您在上一过程(任务1:(可选)为实例配置文件创建自定义 S3 存储桶策略)中创建了自定义 S3 存储桶策略,请选中其名称旁边的框。

    • 如果您打算将实例加入 AWS Directory Service 管理的 Active Directory,请选中 AmazonSSMDirectoryServiceAccess 旁边的框。

    • 如果您打算使用 CloudWatch Events 或 CloudWatch Logs 管理或监控实例,请选中 CloudWatchAgentServerPolicy 旁边的框。

  6. 选择下一步: 标签

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

  8. 对于角色名称,请输入新实例配置文件的名称,例如 SSMInstanceProfile 您喜欢的其他名称。

    注意

    记下角色名称。在创建希望使用 Systems Manager 进行管理的新实例时,将选择该角色。

  9. (可选)对于角色描述,请输入该实例配置文件的描述。

  10. 选择创建角色。系统将您返回到角色页。

将 Systems Manager 的实例配置文件权限添加到现有角色(控制台)

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

  2. 在导航窗格中,选择角色,然后选择要与 Systems Manager 操作的实例配置文件关联的现有角色。

  3. 权限选项卡上,选择 Attach policies (附加策略)

  4. 附加权限策略页面上,执行以下操作:

    • 选中所需的 AmazonSSMManagedInstanceCore 托管策略旁边的框。

    • 如果已创建自定义 S3 存储桶策略,请选中其名称旁边的框。有关实例配置文件的自定义 S3 存储桶策略的信息,请参阅任务1:(可选)为实例配置文件创建自定义 S3 存储桶策略

    • 如果您打算将实例加入 AWS Directory Service 管理的 Active Directory,请选中 AmazonSSMDirectoryServiceAccess 旁边的框。

    • 如果您打算使用 CloudWatch Events 或 CloudWatch Logs 管理或监控实例,请选中 CloudWatchAgentServerPolicy 旁边的框。

  5. 选择 Attach policy

有关如何更新角色以包含可信实体或进一步限制访问的信息,请参阅 IAM User Guide 中的修改角色

继续浏览步骤 5:将 IAM 实例配置文件附加到 Amazon EC2 实例