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

第 2 步:为混合环境创建 IAM 服务角色

混合环境中的服务器和虚拟机 (VM) 需要使用 IAM 角色以与 Systems Manager 服务进行通信。该角色为 Systems Manager 服务授予 AssumeRole 信任关系。对于混合环境,您只需为每个 AWS 账户创建一次服务角色。

注意

对于在混合计算机上使用 Systems Manager 的公司或组织用户,必须在 IAM 中为其授予权限以调用 SSM API。有关更多信息,请参阅 为 Systems Manager 创建非管理员 IAM 用户和组

S3 存储桶策略要求

如果出现以下任一情况,您必须在完成该过程之前为 Amazon S3 存储桶创建自定义 IAM 权限策略:

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

  • 情况 2:您打算使用在 Systems Manager 操作期间创建的 Amazon S3 存储桶,例如,将 Run Command 命令或 Session Manager 会话输出存储到 S3 存储桶中。在继续之前,请按照为实例配置文件创建自定义 S3 存储桶策略中的步骤进行操作。该主题中有关 S3 存储桶策略的信息也适用于服务角色。

为混合环境创建 IAM 服务角色(Tools for Windows PowerShell)

  1. 使用以下信任策略创建一个名为 SSMService-Trust.json 的文本文件。确保使用 .json 文件扩展名保存该文件。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } }
  2. 使用 New-IAMRole(如下所示)创建服务角色。该示例创建一个名为 SSMServiceRole 的角色。如果愿意,您也可以选择其他名称。

    New-IAMRole -RoleName SSMServiceRole -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  3. 按如下方式使用 Register-IAMRolePolicy 启用您创建的服务角色以创建会话令牌。此会话令牌向托管实例授予使用 Systems Manager 运行命令的权限。

    注意

    您为混合环境中的托管实例的服务配置文件添加的策略与用于为 EC2 实例创建实例配置文件的策略相同。有关在以下命令中使用的 AWS 策略的更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件

    (必需)运行以下命令以允许托管实例使用 AWS Systems Manager 服务核心功能。

    Register-IAMRolePolicy -RoleName SSMServiceRole -PolicyArn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    如果为服务角色创建了一个自定义 S3 存储桶策略,请运行以下命令以允许 SSM 代理 访问在该策略中指定的存储桶。将 account-idmy-bucket-policy-name 替换为您的 AWS 账户 ID 和存储桶名称。

    Register-IAMRolePolicy -RoleName SSMServiceRole -PolicyArn arn:aws:iam::account-id:policy/my-bucket-policy-name

    (可选)运行以下命令以允许 SSM 代理 代表您访问 AWS Directory Service,以处理托管实例加入域的请求。只有在将实例加入 Microsoft AD 目录时,实例配置文件才需要使用该策略。

    Register-IAMRolePolicy -RoleName SSMServiceRole -PolicyArn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (可选)运行以下命令以允许 CloudWatch 代理 在托管实例上运行。通过使用该命令,可以读取实例上的信息并将其写入到 CloudWatch 中。只有在使用 CloudWatch 功能(如 Amazon CloudWatch Events 或 Amazon CloudWatch Logs)时,服务配置文件才需要使用该策略。

    Register-IAMRolePolicy -RoleName SSMServiceRole -PolicyArn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

为混合环境创建 IAM 服务角色 (AWS CLI)

  1. 使用以下信任策略创建一个名为 SSMService-Trust.json 的文本文件。确保使用 .json 文件扩展名保存该文件。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } }
  2. 使用 create-role 命令创建服务角色。该示例创建一个名为 SSMServiceRole 的角色。如果愿意,您也可以选择其他名称。

    aws iam create-role --role-name SSMServiceRole --assume-role-policy-document file://SSMService-Trust.json
  3. 按如下方式使用 attach-role-policy 启用您刚创建的服务角色以创建会话令牌。此会话令牌向托管实例授予使用 Systems Manager 运行命令的权限。

    注意

    您为混合环境中的托管实例的服务配置文件添加的策略与用于为 EC2 实例创建实例配置文件的策略相同。有关在以下命令中使用的 AWS 策略的更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件

    (必需)运行以下命令以允许托管实例使用 AWS Systems Manager 服务核心功能。

    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    如果为服务角色创建了一个自定义 S3 存储桶策略,请运行以下命令以允许 SSM 代理 访问在该策略中指定的存储桶。将 account-idmy-bucket-policy-name 替换为您的 AWS 账户 ID 和存储桶名称。

    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::account-id:policy/my-bucket-policy-name

    (可选)运行以下命令以允许 SSM 代理 代表您访问 AWS Directory Service,以处理托管实例加入域的请求。只有在将实例加入 Microsoft AD 目录时,实例配置文件才需要使用该策略。

    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (可选)运行以下命令以允许 CloudWatch 代理 在托管实例上运行。通过使用该命令,可以读取实例上的信息并将其写入到 CloudWatch 中。只有在使用 CloudWatch 功能(如 Amazon CloudWatch Events 或 Amazon CloudWatch Logs)时,服务配置文件才需要使用该策略。

    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

注意

您公司或组织中要在混合计算机上使用 Systems Manager 的用户必须在 IAM 中获得授权,才能调用 SSM API。有关更多信息,请参阅创建用户和分配权限

继续浏览第 3 步:在本地服务器和虚拟机上安装 TLS 证书