步骤 1:为混合和多云环境创建 IAM 服务角色 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

步骤 1:为混合和多云环境创建 IAM 服务角色

混合和多云环境中的非 EC2(亚马逊弹性计算云)计算机需要 Amazon Identity and Access Management (IAM) 服务角色才能与服务通信。Amazon Systems Manager此角色向 Amazon Security Token Service (Amazon STS) AssumeRole 授予对 Systems Manager 服务的信任。您只需要为混合和多云环境创建一次服务角色。Amazon Web Services 账户但是,如果混合和多云环境中的计算机需要不同的权限,则可以选择为不同的混合激活创建多个服务角色。

以下过程介绍如何使用 Systems Manager 控制台或首选命令行工具来创建所需的服务角色。

创建 IAM 服务角色(控制台)

使用以下过程为混合激活创建服务角色。此过程使用 Systems Manager 核心功能的 AmazonSSMManagedInstanceCore 策略。您可能需要向服务角色添加其他策略,以便本地计算机能够访问其他功能或 Amazon Web Services,具体取决于您的应用场景。例如,如果无法访问所需的 Amazon 托管式 Amazon Simple Storage Service (Amazon S3) 存储桶,Patch Manager 修补操作将会失败。

创建服务角色(控制台)
  1. 访问:https://console.aws.amazon.com/iam/,打开 IAM 控制台。

  2. 在导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  3. 对于 Select trusted entity(选择可信实体),完成以下选择:

    1. 对于 Trusted entity type(可信实体类型),选择 Amazon Web Service

    2. 对于其他 Amazon Web Services 的应用场景,请选择 Systems Manager

    3. 选择 Systems Manager

  4. 选择下一步

  5. Add permissions(添加权限)页面上,请执行以下操作:

    • 使用搜索字段查找 AmazonSSM 政策ManagedInstanceCore。选中其名称旁边的复选框。

      
                                    在 IAM 控制台中选择的 EC2 服务的策略。
    • 即使您搜索其他策略,控制台也会保留您选择的内容。

    • 如果您在过程 (可选)为 S3 存储桶访问创建自定义策略 中创建了自定义 S3 存储桶策略,请搜索该策略并选中其名称旁边的复选框。

    • 如果您计划将非 EC2 计算机加入由管理的 Active DirectoryAmazon Directory Service,请搜索 AmazonSSM DirectoryServiceAccess 并选中其名称旁边的复选框。

    • 如果您计划使用EventBridge或CloudWatch日志来管理或监控您的托管节点,请搜索CloudWatchAgentServerPolicy并选中其名称旁边的复选框。

  6. 选择下一步

  7. 角色名称中,输入您的新 IAM 服务器角色的名称,例如SSMServerRole

    注意

    记下角色名称。在使用 Systems Manager 注册要管理的新计算机时,将选择此角色。

  8. (可选)在 “描述” 中,更新此 IAM 服务器角色的描述。

  9. (可选)在 Tags(标签)中添加一个或多个标签密钥值对,以组织、跟踪或控制此角色的访问权限。

  10. 选择 Create role (创建角色)。系统将让您返回到 Roles (角色) 页面。

创建 IAM 服务角色(命令行)

使用以下过程为混合激活创建服务角色。此过程使用 Systems Manager 核心功能的 AmazonSSMManagedInstanceCore 策略。根据您的用例,您可能需要为混合和多云环境中的非 EC2 计算机在服务角色中添加其他策略,以便能够访问其他功能或。Amazon Web Services

S3 存储桶策略要求

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

  • 情况 1:您通过一个 VPC 端点以私有方式将您的 VPC 连接到受支持的 Amazon Web Services,以及由 Amazon PrivateLink 提供支持的 VPC 端点服务。

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

Amazon CLI
为混合和多云环境创建 IAM 服务角色 () Amazon CLI
  1. 安装并配置 Amazon Command Line Interface (Amazon CLI)(如果尚未执行该操作)。

    有关信息,请参阅安装或更新 Amazon CLI 的最新版本

  2. 在本地计算机上使用以下信任策略创建一个文本文件,文件名称类似于 SSMService-Trust.json。确保使用 .json 文件扩展名保存该文件。请务必指定您在其中创建混合激活的 ARN 中的 Amazon Web Services 账户 和 Amazon Web Services 区域。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:us-east-2:123456789012:*" } } } ] }
  3. 打开 Amazon CLI,在创建该 JSON 文件的目录下,运行 create-role 命令以创建服务角色。该示例创建一个名为 SSMServiceRole 的角色。如果愿意,您也可以选择其他名称。

    Linux & macOSWindows
    Linux & macOS
    aws iam create-role \ --role-name SSMServiceRole \ --assume-role-policy-document file://SSMService-Trust.json
    Windows
    aws iam create-role ^ --role-name SSMServiceRole ^ --assume-role-policy-document file://SSMService-Trust.json
  4. 按如下方式运行attach-role-policy命令,以允许您刚刚创建的服务角色创建会话令牌。此会话令牌向托管节点授予使用 Systems Manager 运行命令的权限。

    注意

    您为混合和多云环境中托管节点的服务配置文件添加的策略与用于为 Amazon 弹性计算云 (Amazon EC2) 实例创建实例配置文件的策略相同。有关以下命令中使用的 Amazon 策略的更多信息,请参阅为 Systems Manager 配置实例权限

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

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    如果为服务角色创建了自定义 S3 存储桶策略,请运行以下命令,以允许 Amazon Systems Manager Agent (SSM Agent) 访问在该策略中指定的存储桶。将账户 IDmy-bucket-policy-name替换为您的 Amazon Web Services 账户 ID 和存储桶名称。

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::account-id:policy/my-bucket-policy-name
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::account-id:policy/my-bucket-policy-name

    (可选)运行以下命令以允许 SSM Agent 代表您访问 Amazon Directory Service,以处理托管节点加入域的请求。只有在将节点加入 Microsoft AD 目录时,服务角色才需要使用此策略。

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (可选)运行以下命令以允许CloudWatch代理在您的托管节点上运行。此命令可以读取节点上的信息并将其写入CloudWatch。只有当您将使用亚马逊EventBridge或亚马逊CloudWatch日志等服务时,您的服务配置文件才需要此政策。

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Tools for PowerShell
为混合和多云环境创建 IAM 服务角色 () Amazon Tools for Windows PowerShell
  1. 如果您尚未安装和配置Amazon Tools for PowerShell(适用于 Windows 的工具PowerShell)。

    有关信息,请参阅安装 Amazon Tools for PowerShell

  2. 在本地计算机上使用以下信任策略创建一个文本文件,文件名称类似于 SSMService-Trust.json。确保使用 .json 文件扩展名保存该文件。请务必指定您在其中创建混合激活的 ARN 中的 Amazon Web Services 账户 和 Amazon Web Services 区域。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:region:123456789012:*" } } } ] }
  3. PowerShell在管理模式下打开,在创建 JSON 文件的目录中,按如下方式运行 n ew-iamRole 以创建服务角色。该示例创建一个名为 SSMServiceRole 的角色。如果愿意,您也可以选择其他名称。

    New-IAMRole ` -RoleName SSMServiceRole ` -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  4. 按RolePolicy如下方式使用 register-IAM 以允许您创建的服务角色创建会话令牌。此会话令牌向托管节点授予使用 Systems Manager 运行命令的权限。

    注意

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

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

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

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

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

    (可选)运行以下命令以允许 SSM Agent 代表您访问 Amazon Directory Service,以处理托管节点加入域的请求。只有当你将节点加入到 Microsoft AD 目录时,你的服务器角色才需要这个策略。

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

    (可选)运行以下命令以允许CloudWatch代理在您的托管节点上运行。此命令可以读取节点上的信息并将其写入CloudWatch。只有当您将使用亚马逊EventBridge或亚马逊CloudWatch日志等服务时,您的服务配置文件才需要此政策。

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

继续浏览 步骤 2:为混合和多云环境创建混合激活