

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 为 Amazon Systems Manager 设置托管节点
<a name="systems-manager-setting-up-nodes"></a>

完成本节中的任务来设置和配置使用 Amazon Systems Manager 工具的角色、用户账户、权限和初始资源。本节中介绍的任务通常由 Amazon Web Services 账户 和系统管理员执行。完成这些步骤后，贵企业中的用户便可以使用 Systems Manager 来配置、管理和访问您的*托管式节点*。托管节点是指在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中配置与 Systems Manager 一起使用的任何计算机。

**注意**  
如果您计划在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中使用 Amazon EC2 实例*和*您的计算资源，请按照 [使用 Systems Manager 管理 EC2 实例](systems-manager-setting-up-ec2.md) 中的步骤操作。该主题介绍为 EC2 实例和非 EC2 计算机完成 Systems Manager 设置的最佳顺序步骤。

如果您已使用其他 Amazon Web Services 服务，则表示您已完成这些步骤中的一部分。但是，其他步骤是特定于 Systems Manager 的。因此，建议您完整阅读本节内容，确保自己做好使用所有 Systems Manager 工具的准备。

**Topics**
+ [

# 使用 Systems Manager 管理 EC2 实例
](systems-manager-setting-up-ec2.md)
+ [

# 使用 Systems Manager 管理混合和多云环境中的节点
](systems-manager-hybrid-multicloud.md)
+ [

# 使用 Systems Manager 管理边缘设备
](systems-manager-setting-up-edge-devices.md)
+ [

# 为 Systems Manager 创建 Amazon Organizations 委派管理员
](setting_up_delegated_admin.md)
+ [

## Amazon Systems Manager 的常规设置
](#setting_up_prerequisites)

# 使用 Systems Manager 管理 EC2 实例
<a name="systems-manager-setting-up-ec2"></a>

完成此部分中的任务，为 Amazon Systems Manager 设置和配置角色、权限以及初始资源。本节中介绍的任务通常由 Amazon Web Services 账户 和系统管理员执行。完成这些步骤后，贵企业中的用户可以使用 Systems Manager 来配置、管理和访问 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

**注意**  
如果您计划使用 Systems Manager 来管理和配置本地计算机，请按照 [使用 Systems Manager 管理混合和多云环境中的节点](systems-manager-hybrid-multicloud.md) 中的设置步骤操作。如果您计划在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中使用 Amazon EC2 实例*和*非 EC2 计算机，请先按照下列步骤操作。本节以建议顺序介绍一些步骤，这些步骤配置要在您的 Systems Manager 操作中使用的角色、用户、权限和初始资源。

如果您已使用其他 Amazon Web Services 服务，则表示您已完成这些步骤中的一部分。但是，其他步骤是特定于 Systems Manager 的。因此，建议您完整阅读本节内容，确保自己做好使用所有 Systems Manager 工具的准备。

**Topics**
+ [

# 配置 Systems Manager 所需的实例权限
](setup-instance-permissions.md)
+ [

# 使用适用于 Systems Manager 的 VPC 端点提高 EC2 实例的安全性
](setup-create-vpc.md)

# 配置 Systems Manager 所需的实例权限
<a name="setup-instance-permissions"></a>

默认情况下，Amazon Systems Manager 没有在您的实例上执行操作的权限。您可以使用 Amazon Identity and Access Management（IAM）角色在账户级别提供实例权限，也可以使用实例配置文件在实例级别提供实例权限。如果您的应用场景允许，我们建议使用“默认主机管理配置”在账户级别授予访问权限。

**注意**  
您可以跳过此步骤，并允许 Systems Manager 在设置统一控制台时为您的实例应用所需的权限。有关更多信息，请参阅 [设置 Amazon Systems Manager](systems-manager-setting-up-console.md)。

## EC2 实例权限的建议配置
<a name="default-host-management"></a>

“默认主机管理配置”允许 Systems Manager 自动管理您的 Amazon EC2 实例。在您打开此设置后，在 Amazon Web Services 区域 和已安装 SSM Agent 版本 3.2.582.0 或更高版本的 Amazon Web Services 账户 中，使用实例元数据服务版本 2（IMDSv2）的所有实例都将自动变为托管实例。“默认主机管理配置”不支持实例元数据服务版本 1。有关过渡到 IMDSv2 的信息，请参阅《Amazon EC2 用户指南》**中的[过渡到使用实例元数据服务版本 2](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/instance-metadata-transition-to-version-2.html)。有关检查您的实例上安装的 SSM Agent 版本的信息，请参阅 [正在检查 SSM Agent 版本号](ssm-agent-get-version.md)。有关更新 SSM Agent 的信息，请参阅 [自动更新 SSM Agent](ssm-agent-automatic-updates.md#ssm-agent-automatic-updates-console)。托管实例具有以下好处：
+ 可以使用 Session Manager 安全地连接到您的实例。
+ 可以使用 Patch Manager 执行自动补丁扫描。
+ 可以使用 Systems Manager 清单查看有关您的实例的详细信息。
+ 可以使用 Fleet Manager 追踪和管理实例。
+ 可以自动保持 SSM Agent 处于最新状态。

Fleet Manager、Inventory、Patch Manager和Session Manager都是 Amazon Systems Manager 中的工具。

“默认主机管理配置”允许在不使用实例配置文件的情况下进行实例管理，并可确保 Systems Manager 有权管理相应区域和账户中的所有实例。如果提供的权限不足以满足您的应用场景要求，您还可以向“默认主机管理配置”创建的默认 IAM 角色添加策略。或者，如果您不需要默认 IAM 角色提供的所有功能的权限，可以创建自己的自定义角色和策略。对您为“默认主机管理配置”选择的 IAM 角色所做的任何更改，都适用于相应区域和账户中的所有托管 Amazon EC2 实例。有关“默认主机管理配置”所用策略的更多信息，请参阅 [Amazon 托管式策略：AmazonSSMManagedEC2InstanceDefaultPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSSMManagedEC2InstanceDefaultPolicy)。有关“默认主机管理配置”的更多信息，请参阅[使用默认主机管理配置自动管理 EC2 实例](fleet-manager-default-host-management-configuration.md)。

**重要**  
使用默认主机管理配置注册的实例将在 `/lib/amazon/ssm` 或 `C:\ProgramData\Amazon` 目录中本地存储注册信息。如果移除这些目录或其中的文件，将导致实例无法使用默认主机管理配置获取连接到 Systems Manager 所需的凭证。在这些情况下，您必须使用实例配置文件为您的实例提供所需的权限，或者重新创建实例。

**注意**  
此过程仅由管理员执行。在允许个人配置或修改“默认主机管理配置”时，实施最低权限访问。您必须在要自动管理 Amazon EC2 实例的每个 Amazon Web Services 区域 中打开“默认主机管理配置”。

**打开“默认主机管理配置”设置**  
您可以从 Fleet Manager 控制台打开“默认主机管理配置”。要使用 Amazon Web Services 管理控制台 或您的首选命令行工具成功完成此过程，您必须拥有 [GetServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetServiceSetting.html)、[ResetServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_ResetServiceSetting.html) 和 [UpdateServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_UpdateServiceSetting.html) API 操作的权限。此外，您还必须有权获得 `AWSSystemsManagerDefaultEC2InstanceManagementRole` IAM 角色的 `iam:PassRole` 权限。以下是示例策略。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetServiceSetting",
                "ssm:ResetServiceSetting",
                "ssm:UpdateServiceSetting"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ssm.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

在开始之前，如果您已将实例配置文件附加到您的 Amazon EC2 实例，请移除允许该 `ssm:UpdateInstanceInformation` 操作的任何权限。在使用“默认主机管理配置”权限之前，SSM Agent 将尝试使用实例配置文件权限。如果您在实例配置文件中允许该 `ssm:UpdateInstanceInformation` 操作，则该实例将不使用“默认主机管理配置”权限。

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 在**账户管理**下拉列表中选择**配置默认主机管理配置**。

1. 打开**启用默认主机管理配置**。

1. 选择用于为实例启用 Systems Manager 工具的 IAM角色。我们建议使用“默认主机管理配置”提供的默认角色。它包含使用 Systems Manager 管理您的 Amazon EC2 实例所需的最低权限集合。如果您更喜欢使用自定义角色，则该角色的信任策略必须允许 Systems Manager 作为可信实体。

1. 选择**配置**以完成设置。

在打开“默认主机管理配置”后，您的实例可能需要最长 30 分钟才能使用所选角色的凭证。您必须在要自动管理 Amazon EC2 实例的每个区域中打开“默认主机管理配置”。

## EC2 实例权限的替代配置
<a name="instance-profile-add-permissions"></a>

您可以使用 Amazon Identity and Access Management（IAM）实例配置文件来授予单个实例级别的访问权限。实例配置文件是一个容器，可在启动时将 IAM 角色信息传递给 Amazon Elastic Compute Cloud (Amazon EC2) 实例。您可以把一个或多个定义所需权限的 IAM policy 附加到新角色或已创建的角色上，以便为 Systems Manager 创建实例配置文件。

**注意**  
可以使用Quick Setup（Amazon Systems Manager 中的一项工具），在您 Amazon Web Services 账户中的所有实例上快速配置实例配置文件。Quick Setup还可创建 IAM 服务角色（或*担任*角色），该角色允许 Systems Manager 代表您在实例上安全地运行命令。在使用 Quick Setup 时，您可以跳过该步骤（步骤 3）和步骤 4。有关更多信息，请参阅 [Amazon Systems Manager Quick Setup](systems-manager-quick-setup.md)。

请注意以下有关创建 IAM 实例配置文件的详细信息：
+ 如果您在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中为 Systems Manager 配置非 EC2 计算机，则无需为它们创建实例配置文件。相反，您必须将服务器和 VM 配置为使用 IAM 服务角色。有关更多信息，请参阅[在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色](hybrid-multicloud-service-role.md)。
+ 如果更改 IAM 实例配置文件，实例凭证可能需要一些时间才能刷新。刷新后，SSM Agent 才会处理请求。要加快刷新过程，您可以重新启动 SSM Agent或重新启动实例。

根据您是为实例配置文件创建新角色还是为现有角色添加所需权限，请使用以下过程之一。<a name="setup-instance-profile-managed-policy"></a>

**为 Systems Manager 托管实例创建实例配置文件（控制台）**

1. 访问：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)，打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于 **Trusted entity type**（可信实体类型），选择 **Amazon Web Services 服务**。

1. 在 **Use case**（应用场景）下，选择 **EC2**，然后选择 **Next**（下一步）。

1. 在 **Add permissions**（添加权限）页面上，请执行以下操作：
   + 使用**搜索**字段查找 **AmazonSSMManagedInstanceCore** 策略。选中其名称旁边的复选框，如下图所示。  
![\[该复选框在 AmazonSSMManagedInstanceCore 行中处于选中状态。\]](http://docs.amazonaws.cn/systems-manager/latest/userguide/images/setup-instance-profile-2.png)

     即使您搜索其他策略，控制台也会保留您选择的内容。
   + 如果您在上一过程中创建了自定义 S3 存储桶策略 [（可选）为 S3 存储桶访问创建自定义策略](#instance-profile-custom-s3-policy)，请搜索该策略并选中其名称旁边的复选框。
   + 如果您打算将实例加入 Amazon Directory Service 管理的 Active Directory，请搜索 **AmazonSSMDirectoryServiceAccess** 并选中其名称旁边的复选框。
   + 如果您打算使用 Eventbridge 或 CloudWatch Logs 来管理或监控您的实例，请搜索 **CloudWatchAgentServerPolicy** 并选中其名称旁边的复选框。

1. 选择**下一步**。

1. 对于**Role name**（角色名称），请输入新实例配置文件的名称，例如 **SSMInstanceProfile**。
**注意**  
记下角色名称。在创建希望使用 Systems Manager 进行管理的新实例时，将选择该角色。

1. （可选）对于 **Description**（描述），更新此实例配置文件的描述。

1. （可选）对于 **Tags**（标签），添加一个或多个标签键值对，以组织、跟踪或控制此角色的访问，然后选择 **Create role**（创建角色）。系统将让您返回到 **角色** 页面。<a name="setup-instance-profile-custom-policy"></a>

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

1. 访问：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)，打开 IAM 控制台

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

1. 在 **Permissions**（权限）选项卡上，选择 **Add Permissions, Attach policies**（添加权限，附上策略）。

1. 在 **Attach policy**（附上策略）页面上，执行以下操作：
   + 使用**搜索**字段查找 **AmazonSSMManagedInstanceCore** 策略。选中其名称旁边的复选框。
   + 如果您已经创建了自定义 S3 存储桶策略，请搜索该策略并选中其名称旁边的复选框。有关实例配置文件的自定义 S3 存储桶策略的信息，请参阅 [（可选）为 S3 存储桶访问创建自定义策略](#instance-profile-custom-s3-policy)。
   + 如果您打算将实例加入 Amazon Directory Service 管理的 Active Directory，请搜索 **AmazonSSMDirectoryServiceAccess** 并选中其名称旁边的复选框。
   + 如果您打算使用 Eventbridge 或 CloudWatch Logs 来管理或监控您的实例，请搜索 **CloudWatchAgentServerPolicy** 并选中其名称旁边的复选框。

1. 选择**附加策略**。

有关如何更新角色以包含可信实体或进一步限制访问的信息，请参阅 *IAM 用户指南*中的[修改角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_manage_modify.html)。

## （可选）为 S3 存储桶访问创建自定义策略
<a name="instance-profile-custom-s3-policy"></a>

只有在 Systems Manager 操作中使用 VPC 端点或使用您自己的 S3 存储桶时，才需要为 Amazon S3 访问创建自定义策略。您可以将此策略附加到由“默认主机管理配置”创建的默认 IAM 角色，或您在之前的过程中创建的实例配置文件。

有关您在以下策略中提供访问权限的 Amazon 托管 S3 存储桶的信息，请参阅 [SSM Agent 与 Amazon 托管 S3 存储桶进行通信](ssm-agent-technical-details.md#ssm-agent-minimum-s3-permissions)。

1. 访问：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)，打开 IAM 控制台。

1. 在导航窗格中，选择 **Policies (策略)**，然后选择 **Create policy (创建策略)**。

1. 选择 **JSON** 选项卡，并将原定设置文本替换为以下内容。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": [
                   "arn:aws:s3:::aws-ssm-us-east-2/*",
                   "arn:aws:s3:::aws-windows-downloads-us-east-2/*",
                   "arn:aws:s3:::amazon-ssm-us-east-2/*",
                   "arn:aws:s3:::amazon-ssm-packages-us-east-2/*",
                   "arn:aws:s3:::us-east-2-birdwatcher-prod/*",
                   "arn:aws:s3:::aws-ssm-distributor-file-us-east-2/*",
                   "arn:aws:s3:::aws-ssm-document-attachments-us-east-2/*",
                   "arn:aws:s3:::patch-baseline-snapshot-us-east-2/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           }
       ]
   }
   ```

------
**注意**  
只有在使用 VPC 端点时，才需要使用第一个 `Statement` 元素。  
只有在 Systems Manager 操作中使用您创建的 S3 存储桶时，才需要使用第二个 `Statement` 元素。  
只有在您打算为其他账户中的 S3 存储桶提供跨账户访问支持时，才需要使用 `PutObjectAcl` 访问控制列表权限。  
如果您的 S3 存储桶配置为使用加密，则 `GetEncryptionConfiguration` 元素是必需的。  
如果您的 S3 存储桶配置为使用加密，则 S3 存储桶根（例如 `arn:aws:s3:::amzn-s3-demo-bucket`）必须列在**资源**部分。您的用户、组或角色必须配置为有权访问根存储桶。

1. 如果在操作中使用 VPC 端点，请执行以下操作：

   在第一个 `Statement` 元素中，将每个*区域*占位符替换为将使用该策略 Amazon Web Services 区域 的标识符。例如，对于美国东部 (俄亥俄) 区域，请使用 `us-east-2`。有关支持的 *region* 值的列表，请参阅《Amazon Web Services 一般参考》**中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。
**重要**  
我们建议您避免在该策略中使用通配符 (\$1) 以替代特定区域。例如，使用 `arn:aws:s3:::aws-ssm-us-east-2/*` 而不使用 `arn:aws:s3:::aws-ssm-*/*`。使用通配符可能会提供对您不打算授予访问权限的 S3 存储桶的访问。如果要将实例配置文件用于多个区域，我们建议每个区域重复使用第一个 `Statement` 元素。

   -或者-

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

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

   在第二个 `Statement` 元素中，将 *amzn-s3-demo-bucket* 替换为您的账户中的 S3 存储桶的名称。将在 Systems Manager 操作中使用该存储桶。它将 `"arn:aws:s3:::my-bucket-name/*"` 作为资源，以便为存储桶中的对象提供权限。有关为存储桶或存储桶中的对象提供权限的更多信息，请参阅 [Amazon Simple Storage Service 用户指南](https://docs.amazonaws.cn/AmazonS3/latest/dev/using-with-s3-actions.html)中的 *Amazon S3 操作*主题，以及 Amazon 博客文章 [IAM policy、存储桶策略和 ACL！Oh, My\$1 (Controlling Access to S3 Resources)](https://www.amazonaws.cn/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/)。
**注意**  
如果您使用多个存储桶，请提供每个存储桶的 ARN。有关存储桶的权限，请参阅以下示例。  

   ```
   "Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
   "arn:aws:s3:::amzn-s3-demo-bucket2/*"
                  ]
   ```

   - 或者 -

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

1. 选择**下一步：标签**。

1. （可选）通过选择 **Add tag**（添加标签）并输入策略的首选标签来添加标签。

1. 选择**下一步：审核**。

1. 在 **Name**（名称）中，输入用于标识此策略的名称，例如 **SSMInstanceProfileS3Policy**。

1. 选择**创建策略**。

## 托管实例的其他策略注意事项
<a name="instance-profile-policies-overview"></a>

本部分介绍了一些策略，您可以将这些策略添加到由“默认主机管理配置”或您的 Amazon Systems Manager 实例配置文件创建的默认 IAM 角色中。要为实例和 Systems Manager API 之间的通信提供权限，我们建议您创建反映系统需求和安全要求的自定义策略。根据您的操作计划，您可能需要具有在其他策略的一个或多个策略中表示的权限。

**策略：`AmazonSSMDirectoryServiceAccess`**  
只有在您打算将 Windows Server 的 Amazon EC2 实例加入 Microsoft AD 目录时才需要。  
该 Amazon 托管策略允许 SSM Agent 代表您访问 Amazon Directory Service，以处理托管实例加入域的请求。有关更多信息，请参阅 *Amazon Directory Service 管理指南*中的[无缝加入 Windows EC2 实例](https://docs.amazonaws.cn/directoryservice/latest/admin-guide/launching_instance.html)。

**策略：`CloudWatchAgentServerPolicy`**  
只有在您打算在实例上安装并运行 CloudWatch 代理，以读取实例上的指标和日志数据并将其写入到 Amazon CloudWatch 时才需要。这些操作可以帮助您监控、分析和快速响应存在的问题或对您的 Amazon 资源的更改。  
仅当您将使用 Amazon EventBridge 或 Amazon CloudWatch Logs 等功能时，由“默认主机管理配置”或实例配置文件创建的默认 IAM 角色才需要此策略。（您还可以创建限制性更强的策略，例如，限制对特定 CloudWatch Logs 日志流的写入访问。）  
使用 EventBridge 和 CloudWatch Logs 功能是可选的。但是，如果您决定使用这些功能，我们建议您在开始执行 Systems Manager 配置过程时就设置这些功能。有关更多信息，请参阅 *[Amazon EventBridge User Guide](https://docs.amazonaws.cn/eventbridge/latest/userguide/)* 和 *[Amazon CloudWatch Logs User Guide](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/)*。
要创建拥有其他 Systems Manager 工具权限的 IAM 策略，请参阅以下资源：  
+ [使用 IAM 策略限制对 Parameter Store 参数的访问](sysman-paramstore-access.md)
+ [设置自动化](automation-setup.md)
+ [步骤 2：验证或添加 Session Manager 的实例权限](session-manager-getting-started-instance-profile.md)

## 将 Systems Manager 实例配置文件附加到实例（控制台）
<a name="attach-instance-profile"></a>

以下步骤介绍了如何使用 Amazon EC2 控制台将 IAM 实例配置文件附加到 Amazon EC2 实例。

1. 登录 Amazon Web Services 管理控制台，打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/)。

1. 在导航窗格中的 **Instances** 下，选择 **Instances**。

1. 导航至并从列表中选择您的 EC2 实例。

1. 在**操作** 菜单中，选择**安全**、**修改 IAM 角色**。

1. 对于 **IAM role (IAM 角色)**，选择您使用 [EC2 实例权限的替代配置](#instance-profile-add-permissions) 中的过程创建的实例配置文件。

1. 选择 **Update **IAM role****（更新 IAM 角色）。

有关将 IAM 角色附加到实例的更多信息，请选择以下操作之一，具体取决于您选择的操作系统类型：
+ 《Amazon EC2 用户指南》**中的[将 IAM 角色附加到实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)
+ 《Amazon EC2 用户指南》**中的[将 IAM 角色附加到实例](https://docs.amazonaws.cn/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)

继续[使用适用于 Systems Manager 的 VPC 端点提高 EC2 实例的安全性](setup-create-vpc.md)。

# 使用适用于 Systems Manager 的 VPC 端点提高 EC2 实例的安全性
<a name="setup-create-vpc"></a>

您可以配置 Amazon Systems Manager 在 Amazon Virtual Private Cloud（Amazon VPC）中使用接口 VPC 端点，以提高托管式节点（包括[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 EC2 实例）的安全状况。通过使用接口 VPC 端点（接口端点），您可以连接到 Amazon PrivateLink 支持的服务。Amazon PrivateLink 技术允许您使用私有 IP 地址私下访问 Amazon Elastic Compute Cloud (Amazon EC2) 和 Systems Manager API。

Amazon PrivateLink 将托管实例、Systems Manager 和 Amazon EC2 之间的所有网络流量限制在 Amazon 网络以内。这意味着您的托管实例无法访问 Internet。如果您使用 Amazon PrivateLink，则无需互联网网关、NAT 设备或虚拟私有网关。

不要求您配置 Amazon PrivateLink，但推荐进行此配置。有关 Amazon PrivateLink 和 VPC 端点的更多信息，请参阅[Amazon PrivateLink 和 VPC 端点](https://docs.amazonaws.cn/vpc/latest/userguide/endpoint-services-overview.html)。

**注意**  
使用 VPC 端点的替代方法是，在托管实例上允许出站 Internet 访问。在这种情况下，托管实例还必须允许以下端点的 HTTPS（端口 443）出站流量：  
`ssm.region.amazonaws.com`
`ssmmessages.region.amazonaws.com`
`ec2messages.region.amazonaws.com`
SSM Agent 将在云中启动所有与 Systems Manager 服务的连接。因此，您无需为 Systems Manager 配置防火墙以允许入站流量到达您的实例。  
有关对这些端点的调用的更多信息，请参阅 [参考：ec2messages、ssmmessages 和其他 API 操作](systems-manager-setting-up-messageAPIs.md)。  
如果您在*仅*支持 IPv6 的环境中使用 Systems Manager，则还必须允许出站流量发往以下端点：  
`ssm.region.api.aws`
`ssmmessages.region.api.aws`
`ec2messages.region.api.aws`
有关双堆栈服务端点的更多信息，请参阅《Amazon 通用参考指南》**中的 [Dual stack endpoints](https://docs.amazonaws.cn/general/latest/gr/rande.html#dual-stack-endpoints)。  
您还必须确保可从您的节点访问补丁操作存储桶，如[参考：用于修补操作的 Amazon S3 存储桶](https://docs.amazonaws.cn/systems-manager/latest/userguide/patch-operations-s3-buckets.html)中所述。

**关于 Amazon VPC**  
您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 在 Amazon Web Services 云 内您自己的逻辑隔离区域中定义虚拟化网络，我们称之为 *虚拟私有云 (VPC) *。可在 VPC 中启动实例等 Amazon 资源。您的 VPC 与您可能在自己的数据中心中运行的传统网络极为相似，同时享有使用来自 Amazon 的可扩展基础设施的优势。您可以配置您的 VPC；您可以选择它的 IP 地址范围、创建子网并配置路由表、网关和安全设置。您可以将您的 VPC 中的实例连接到网络。您可以将您的 VPC 连接到公司的数据中心，并将 Amazon Web Services 云 作为数据中心的延伸。要保护各个子网中的资源，您可以利用多种安全层，包括安全组和网络访问控制列表。有关更多信息，请参阅[《Amazon VPC 用户指南》](https://docs.amazonaws.cn/vpc/latest/userguide/)。

**Topics**
+ [

## VPC 端点限制
](#vpc-requirements-and-limitations)
+ [

## 为 Systems Manager 创建 VPC 端点
](#create-vpc-endpoints)
+ [

## 创建接口 VPC 端点策略
](#create-vpc-interface-endpoint-policies)

## VPC 端点限制
<a name="vpc-requirements-and-limitations"></a>

在配置 Systems Manager 的 VPC 端点之前，请注意以下限制。

**VPC 对等连接**  
VPC 接口端点可以通过*区域内*和*区域间* VPC 对等连接访问。有关 VPC 接口端点的 VPC 对等连接请求的更多信息，请参阅*《Amazon Virtual Private Cloud 用户指南》*中的 [VPC 对等连接 (Quotas)](https://docs.amazonaws.cn/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-peering)。

无法将 VPC 网关端点连接扩展到 VPC 之外。VPC 中的 VPC 对等连接另一端的资源不能使用网关端点与网关端点服务中的资源进行通信。有关 VPC 网关端点的 VPC 对等连接请求的更多信息，请参阅[《Amazon Virtual Private Cloud 用户指南》](https://docs.amazonaws.cn/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-endpoints)中的 *VPC 端点 (Quotas)*

**传入连接**  
附加到 VPC 端点的安全组必须允许从托管实例的私有子网通过端口 443 进行传入连接。如果不允许传入连接，则托管实例无法连接到 SSM 和 EC2 端点。

**DNS 解析**  
如果您使用自定义 DNS 服务器，则必须将针对 `amazonaws.com` 域的任何查询的条件转发器添加到 VPC 的 Amazon DNS 服务器。

**S3 存储桶**  
VPC 端点策略必须允许访问至少 [SSM Agent 与 Amazon 托管 S3 存储桶进行通信](ssm-agent-technical-details.md#ssm-agent-minimum-s3-permissions) 中列出的 Amazon S3 存储桶。

**注意**  
如果您使用本地防火墙并计划使用 Patch Manager，还必须允许该防火墙访问适当的补丁基准端点。

**Amazon CloudWatch Logs**  
如果您不允许您的实例访问互联网，请为 CloudWatch Logs 创建 VPC 端点，以使用向 CloudWatch 日志发送日志的功能。有关为 CloudWatch Logs 创建端点的更多信息，请参阅《Amazon CloudWatch Logs 用户指南》**中的[为 CloudWatch Logs 创建 VPC 端点](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html#create-VPC-endpoint-for-CloudWatchLogs)。

**混合和多云环境中的 DNS**  
有关配置 DNS 以在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中与 Amazon PrivateLink 端点一起使用的信息，请参阅*《Amazon VPC 用户指南》*中的[用于接口端点的私有 DNS](https://docs.amazonaws.cn/vpc/latest/privatelink/vpce-interface.html#vpce-private-dns)。如果需要使用自己的 DNS，可以使用 Route 53 解析程序。有关更多信息，请参阅*《Amazon Route 53 开发人员指南》*中的[解析 VPC 与网络之间的 DNS 查询](https://docs.amazonaws.cn/Route53/latest/DeveloperGuide/resolver.html)。

## 为 Systems Manager 创建 VPC 端点
<a name="create-vpc-endpoints"></a>

使用以下信息为 Amazon Systems Manager 创建 VPC 接口端点。本主题链接到*《Amazon VPC 用户指南》*中的过程。

**注意**  
*region* 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符，例如 `us-east-2` 对应美国东部（俄亥俄州）区域。有关支持的 *region* 值的列表，请参阅*《Amazon Web Services 一般参考》*中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

按照[创建接口端点](https://docs.amazonaws.cn/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)中的步骤操作，创建以下接口端点：
+ **`com.amazonaws.region.ssm`** – Systems Manager 服务的端点。
+ **`com.amazonaws.region.ec2messages`** – Systems Manager 使用此端点从 SSM Agent 调用到 Systems Manager 服务。从 SSM Agent 的版本 3.3.40.0 开始，只要可用，Systems Manager 就会使用 `ssmmessages:*` 端点（Amazon Message Gateway Service）而非 `ec2messages:*` 端点（Amazon Message Delivery Service）。
+ **`com.amazonaws.region.ec2`** – 如果您使用 Systems Manager 创建启用 VSS 的快照，则需要确保您具有连接到 EC2 服务的端点。如果未定义 EC2 端点，枚举附加的 Amazon EBS 卷的调用将失败，这会导致 Systems Manager 命令失败。
+ **`com.amazonaws.region.s3`**：Systems Manager 使用此端点更新 SSM Agent。如果选择检索存储在存储桶中的脚本或其他文件，或将输出日志上传到存储桶，Systems Manager 也会使用此端点。如果与您的实例关联的安全组限制出站流量，则您必须添加一条规则，以允许流量到达 Amazon S3 的前缀列表。有关更多信息，请参阅*《Amazon PrivateLink 指南》*中的[修改安全组](https://docs.amazonaws.cn/vpc/latest/privatelink/vpce-gateway.html#vpc-endpoints-security)。
+ **`com.amazonaws.region.ssmmessages`** – 对于 Run Command，SSM Agent 需要此端点才能与 Systems Manager 服务通信，并且在您使用 Session Manager 通过安全数据通道连接到您的实例时需要此端点。有关更多信息，请参阅[Amazon Systems Manager Session Manager](session-manager.md)和[参考：ec2messages、ssmmessages 和其他 API 操作](systems-manager-setting-up-messageAPIs.md)。
+ （可选）**`com.amazonaws.region.kms`** – 如果要对 Session Manager 或 Parameter Store 参数使用 Amazon Key Management Service (Amazon KMS) 加密，请创建此端点。
+ （可选）**`com.amazonaws.region.logs`**：如果要将 Amazon CloudWatch Logs (CloudWatch Logs) 用于 Session Manager、Run Command 或 SSM Agent 日志，请创建此端点。

有关 SSM Agent 必须能够访问的 Amazon 托管 S3 存储桶的信息，请参阅 [SSM Agent 与 Amazon 托管 S3 存储桶进行通信](ssm-agent-technical-details.md#ssm-agent-minimum-s3-permissions)。如果您正在 Systems Manager 操作中使用虚拟私有云（VPC）端点，则必须在 Systems Manager 的 EC2 实例配置文件中或在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 EC2 托管式节点的服务角色中提供显式权限。

## 创建接口 VPC 端点策略
<a name="create-vpc-interface-endpoint-policies"></a>

您可以为 Amazon Systems Manager 的 VPC 接口端点创建策略，在其中可以指定：
+ 可执行操作的主体
+ 可执行的操作
+ 可被执行操作的资源

有关更多信息，请参阅《Amazon VPC 用户指南》**中的[使用 VPC 端点控制对服务的访问权限](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-access.html)。

# 使用 Systems Manager 管理混合和多云环境中的节点
<a name="systems-manager-hybrid-multicloud"></a>

您可以使用 Amazon Systems Manager 管理 Amazon Elastic Compute Cloud（EC2）实例和许多非 EC2 计算机类型。本节介绍账户和系统管理员为在*[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境*中使用 Systems Manager 管理非 EC2 计算机而执行的设置任务。完成这些步骤后，已获得 Amazon Web Services 账户 管理员授予权限的用户可以使用 Systems Manager 来配置和管理其组织的非 EC2 计算机。

任何已配置为与 Systems Manager 一起使用的计算机都称为*托管节点*。

**注意**  
您可以使用与其他非 EC2 计算机相同的混合激活步骤，将边缘设备注册为托管式节点。这些类型的边缘设备包括 Amazon IoT 设备和 Amazon IoT 设备以外的设备。使用本部分说明的步骤来设置这些边缘设备类型。  
Systems Manager 还支持使用 Amazon IoT Greengrass Core 软件的边缘设备。Amazon IoT Greengrass 核心设备的设置过程与要求，不同于 Amazon 边缘设备以外的 Amazon IoT 和边缘设备的设置与要求。有关注册 Amazon IoT Greengrass 设备以便与 Systems Manager 搭配使用的信息，请参阅 [使用 Systems Manager 管理边缘设备](systems-manager-setting-up-edge-devices.md)。
Systems Manager 混合和多云环境不支持非 EC2 macOS 计算机。

如果您计划使用 Systems Manager 管理 Amazon Elastic Compute Cloud（Amazon EC2）实例，或者要在混合和多云环境中使用 Amazon EC2 实例和非 EC2 计算机，请先按照 [使用 Systems Manager 管理 EC2 实例](systems-manager-setting-up-ec2.md) 中的步骤操作。

在为 Systems Manager 配置混合和多云环境后，您可以执行以下操作：
+ 创建一种一致且安全的方式，使用相同的工具或脚本从一个位置远程管理混合和多云工作负载。
+ 通过使用 Amazon Identity and Access Management (IAM) 集中管理可在您的计算机上执行的操作访问控制。
+ 通过查看 Amazon CloudTrail 中记录的 API 活动，可集中审核在计算机上执行的操作。

  有关使用 CloudTrail 监控 Systems Manager 操作的信息，请参阅 [使用 Amazon CloudTrail 记录 Amazon Systems Manager API 调用](monitoring-cloudtrail-logs.md)。
+ 通过将 Amazon EventBridge 和 Amazon Simple Notification Service (Amazon SNS) 配置为发送有关服务执行成功的通知，从而实现集中监控。

  有关使用 EventBridge 监控 Systems Manager 事件的信息，请参阅 [使用 Amazon EventBridge 监控 Systems Manager 事件](monitoring-eventbridge-events.md)。

**关于托管式节点**  
在您按照本节所述为 Systems Manager 配置完非 EC2 计算机后，您的混合激活计算机将在 Amazon Web Services 管理控制台 中列出并被称为*托管式节点*。在控制台中，混合激活托管式节点的 ID 与具有前缀“mi-”的 Amazon EC2 实例有区别。Amazon EC2 实例 ID 使用前缀“i-”。

托管式节点是为 Systems Manager 配置的任何计算机。托管式节点以前都被称为托管实例。现在，*实例*一词仅指 EC2 实例。在此术语更改之前，[deregister-managed-instance](https://docs.amazonaws.cn/cli/latest/reference/ssm/deregister-managed-instance.html) 命令就已命名。

有关更多信息，请参阅 [使用托管式节点](fleet-manager-managed-nodes.md)。

**重要**  
强烈建议避免使用生命周期 (EOL) 已终止的操作系统版本。包括 Amazon 在内的操作系统供应商通常不为生命周期已终止的版本提供安全补丁或其他更新。继续使用生命周期终止的操作系统会大大增加无法应用升级（包括安全修复）以及其他操作问题的风险。Amazon 不会在生命周期已终止的操作系统版本上测试 Systems Manager 功能。

**关于实例层**  
Systems Manager 为混合和多云环境中的非 EC2 托管式节点提供标准实例套餐和高级实例套餐。通过标准实例套餐，每个 Amazon Web Services 区域 中的每个 Amazon Web Services 账户 最多可以注册 1000 台混合激活的计算机。如果您需要在单个账户和区域中注册超过 1000 台计算机，请使用高级实例套餐。通过高级实例，您还可以使用 Amazon Systems Manager Session Manager 连接到非 EC2 计算机。Session Manager 提供对托管式节点的交互式 Shell 访问。

有关更多信息，请参阅 [配置实例套餐](fleet-manager-configure-instance-tiers.md)。

**Topics**
+ [

# 在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色
](hybrid-multicloud-service-role.md)
+ [

# 创建混合激活以将节点注册到 Systems Manager
](hybrid-activation-managed-nodes.md)
+ [

# 在混合 Linux 节点上安装 SSM Agent
](hybrid-multicloud-ssm-agent-install-linux.md)
+ [

# 在混合 Windows Server 节点上安装 SSM Agent
](hybrid-multicloud-ssm-agent-install-windows.md)

# 在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色
<a name="hybrid-multicloud-service-role"></a>

[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 EC2（Amazon Elastic Compute Cloud）计算机需要一个 Amazon Identity and Access Management（IAM）服务角色才能与 Amazon Systems Manager 服务通信。此角色向 Amazon Security Token Service (Amazon STS) [https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html](https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html) 授予对 Systems Manager 服务的信任。对于混合和多云环境，您只需为每个 Amazon Web Services 账户 创建一次服务角色。但如果混合和多云环境中的计算机需要不同的权限，则可以选择为不同的混合激活创建多个服务角色。

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

## 使用 Amazon Web Services 管理控制台 为 Systems Manager 混合激活创建 IAM 服务角色
<a name="create-service-role-hybrid-activation-console"></a>

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

**创建服务角色（控制台）**

1. 通过 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于 **Select trusted entity**（选择可信实体），完成以下选择：

   1. 对于 **Trusted entity type**（可信实体类型），选择 **Amazon Web Services 服务**。

   1. 对于**其他 Amazon Web Services 服务 的应用场景**，请选择 **Systems Manager**。

   1. 选择 **Systems Manager**。

      。

1. 选择**下一步**。

1. 在 **Add permissions**（添加权限）页面上，请执行以下操作：
   + 使用**搜索**字段查找 **AmazonSSMManagedInstanceCore** 策略。选中其名称旁边的复选框，如下图所示。  
![\[该复选框在 AmazonSSMManagedInstanceCore 行中处于选中状态。\]](http://docs.amazonaws.cn/systems-manager/latest/userguide/images/setup-instance-profile-2.png)
**注意**  
即使您搜索其他策略，控制台也会保留您选择的内容。
   + 如果您在过程 [（可选）为 S3 存储桶访问创建自定义策略](setup-instance-permissions.md#instance-profile-custom-s3-policy) 中创建了自定义 S3 存储桶策略，请搜索该策略并选中其名称旁边的复选框。
   + 如果您打算将非 EC2 计算机加入 Amazon Directory Service 管理的 Active Directory，请搜索 **AmazonSSMDirectoryServiceAccess** 并选中其名称旁边的复选框。
   + 如果您打算使用 Eventbridge 或 CloudWatch Logs 来管理或监控您的托管节点，请搜索 **CloudWatchAgentServerPolicy** 并选中其名称旁边的复选框。

1. 选择**下一步**。

1. 对于**角色名称**，请为新的 IAM 服务器角色输入名称，例如 **SSMServerRole**。
**注意**  
记下角色名称。在注册希望使用 Systems Manager 进行管理的新计算机时，将选择该角色。

1. （可选）对于**描述**，请更新该 IAM 服务器角色的描述。

1. （可选）在 **Tags**（标签）中添加一个或多个标签密钥值对，以组织、跟踪或控制此角色的访问权限。

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

## 使用 Amazon CLI 为 Systems Manager 混合激活创建 IAM 服务角色
<a name="create-service-role-hybrid-activation-cli"></a>

使用以下过程为混合激活创建服务角色。此过程使用 Systems Manager 核心功能的 `AmazonSSMManagedInstanceCore` 策略。您可能需要向服务角色添加其他策略，以便[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 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 存储桶策略](setup-instance-permissions.md#instance-profile-custom-s3-policy)中的步骤进行操作。该主题中有关 S3 存储桶策略的信息也适用于服务角色。

------
#### [ Amazon CLI ]

**为混合和多云环境创建 IAM 服务角色（Amazon CLI）**

1. 安装并配置 Amazon Command Line Interface（Amazon CLI）（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 Amazon CLI 的最新版本](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)。

1. 在本地计算机上使用以下信任策略创建一个文本文件，文件名称类似于 `SSMService-Trust.json`。确保使用 `.json` 文件扩展名保存该文件。请务必指定您在其中创建混合激活的 ARN 中的 Amazon Web Services 账户 和 Amazon Web Services 区域。请将账户 ID 和区域的*占位符值*替换为您自己的信息。

------
#### [ JSON ]

****  

   ```
   {
      "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-1:111122223333:*"
               }
            }
         }
      ]
   }
   ```

------

1. 打开 Amazon CLI，在创建该 JSON 文件的目录下，运行 [create-role](https://docs.amazonaws.cn/cli/latest/reference/iam/create-role.html) 命令以创建服务角色。该示例创建一个名为 `SSMServiceRole` 的角色。如果愿意，您也可以选择其他名称。

------
#### [ 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
   ```

------

1. 按如下方式运行 [attach-role-policy](https://docs.amazonaws.cn/cli/latest/reference/iam/attach-role-policy.html) 命令，以允许您刚创建的服务角色创建会话令牌。此会话令牌向托管节点授予使用 Systems Manager 运行命令的权限。
**注意**  
您为混合和多云环境中托管式节点的服务配置文件添加的策略与用于为 Amazon Elastic Compute Cloud（Amazon EC2）实例创建实例配置文件的策略相同。有关以下命令中使用的 Amazon 策略的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。

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

------
#### [ 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) 访问在该策略中指定的存储桶。将 *account-id* 和 *amzn-s3-demo-bucket* 替换为您的 Amazon Web Services 账户 ID 和存储桶名称。

------
#### [ Linux & macOS ]

   ```
   aws iam attach-role-policy \
       --role-name SSMServiceRole \
       --policy-arn arn:aws:iam::account-id:policy/amzn-s3-demo-bucket
   ```

------
#### [ Windows ]

   ```
   aws iam attach-role-policy ^
       --role-name SSMServiceRole ^
       --policy-arn arn:aws:iam::account-id:policy/amzn-s3-demo-bucket
   ```

------

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

------
#### [ 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。仅当要使用 Amazon EventBridge 或 Amazon CloudWatch Logs 等服务时，服务配置文件才需要使用该策略。

   ```
   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](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up.html)。

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

------
#### [ JSON ]

****  

   ```
   {
       "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-1:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1. 在管理模式下打开 PowerShell，在创建此 JSON 文件的目录中，按如下方式运行 [New-IAMRole](https://docs.amazonaws.cn//powershell/latest/reference/items/Register-IAMRolePolicy.html) 以创建服务角色。该示例创建一个名为 `SSMServiceRole` 的角色。如果愿意，您也可以选择其他名称。

   ```
   New-IAMRole `
       -RoleName SSMServiceRole `
       -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
   ```

1. 按如下方式使用 [Register-IAMRolePolicy](https://docs.amazonaws.cn/powershell/latest/reference/items/Register-IAMRolePolicy.html)，以允许您创建的服务角色创建会话令牌。此会话令牌向托管节点授予使用 Systems Manager 运行命令的权限。
**注意**  
您为混合和多云环境中托管式节点的服务配置文件添加的策略与用于为 EC2 实例创建实例配置文件的策略相同。有关以下命令中使用的 Amazon 策略的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。

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

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

   如果为服务角色创建了自定义 S3 存储桶策略，请运行以下命令，以允许 SSM Agent 访问在该策略中指定的存储桶。将 *account-id* 和 *my-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。仅当要使用 Amazon EventBridge 或 Amazon CloudWatch Logs 等服务时，服务配置文件才需要使用该策略。

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

------

继续[创建混合激活以将节点注册到 Systems Manager](hybrid-activation-managed-nodes.md)。

# 创建混合激活以将节点注册到 Systems Manager
<a name="hybrid-activation-managed-nodes"></a>

要将 Amazon Elastic Compute Cloud（EC2）实例以外的计算机设置为[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境的托管式节点，您需要创建并应用*混合激活*。成功完成激活后，您将*立即*在控制台页面的顶部收到一个激活代码和激活 ID。在混合和多云环境中的非 EC2 计算机上安装 Amazon Systems Manager SSM Agent 时，指定此代码和 ID 组合。此代码和 ID 提供从托管式节点对 Systems Manager 服务的安全访问。

**重要**  
根据您创建激活的方式，Systems Manager 立即将激活码和 ID 返回到控制台或命令窗口。复制此信息并将其存储在安全位置。如果您离开该控制台或关闭命令窗口，可能会丢失此信息。如果您丢失对应信息，则必须创建一个新激活。

**关于激活过期时间**  
*激活过期*是您可向 Systems Manager 注册本地计算机的时间范围。过期的激活对您以前向 Systems Manager 注册的服务器或虚拟机没有任何影响。如果激活过期，则无法使用该特定激活向 Systems Manager 注册更多服务器或虚拟机。您只需创建新的激活。

在明确将以前注册的每个本地服务器和虚拟机取消注册以前，它们仍保留注册为 Systems Manager 托管节点。可按以下方式取消注册非 EC2 托管式节点：
+ 使用 Systems Manager 控制台中 Fleet Manager 工具内的**托管式节点**选项卡
+ 使用 Amazon CLI 命令 [https://docs.amazonaws.cn/cli/latest/reference/ssm/deregister-managed-instance.html](https://docs.amazonaws.cn/cli/latest/reference/ssm/deregister-managed-instance.html)
+ 使用 API 操作 [https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DeregisterManagedInstance.html](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DeregisterManagedInstance.html)。

有关更多信息，请参阅以下主题
+ [取消注册及重新注册托管式节点（Linux）](hybrid-multicloud-ssm-agent-install-linux.md#systems-manager-install-managed-linux-deregister-reregister)
+ [取消注册及重新注册托管式节点（Windows Server）](hybrid-multicloud-ssm-agent-install-windows.md#systems-manager-install-managed-win-deregister-reregister)

**关于托管式节点**  
托管节点是为 Amazon Systems Manager 配置的任何计算机。Amazon Systems Manager 支持 Amazon Elastic Compute Cloud (Amazon EC2) 实例、边缘设备以及本地服务器或虚拟机 (VM)，包括其他云环境中的虚拟机。托管式节点以前都被称为托管实例。现在，*实例*一词仅指 EC2 实例。在此术语更改之前，[deregister-managed-instance](https://docs.amazonaws.cn/cli/latest/reference/ssm/deregister-managed-instance.html) 命令就已命名。

**关于激活标签**  
如果使用 Amazon Command Line Interface (Amazon CLI) 或 Amazon Tools for Windows PowerShell 创建激活，则可以指定标签。标签是您分配给资源的可选元数据。标签可让您按不同的方式（如用途、拥有者或环境）对资源进行分类。以下是一个在包含可选标签的本地 Linux 计算机上在美国东部（俄亥俄州）区域运行的 Amazon CLI 示例命令。

```
aws ssm create-activation \
  --default-instance-name MyWebServers \
  --description "Activation for Finance department webservers" \
  --iam-role service-role/AmazonEC2RunCommandRoleForManagedInstances \
  --registration-limit 10 \
  --region us-east-2 \
  --tags "Key=Department,Value=Finance"
```

如果在创建激活时指定了标签，那么在激活托管式节点后，系统将自动为它们分配这些标签。

您无法在现有激活中添加或删除标签。如果您不希望使用激活自动为本地服务器和虚拟机分配标签，则可以稍后在其中添加标签。更具体地说，您可以在本地服务器和虚拟机首次连接到 Systems Manager 后标记这些服务器和虚拟机。在连接后，将会为它们分配托管节点 ID，并在 Systems Manager 控制台中列出这些 ID 中带有“mi-”前缀的服务器和虚拟机。

**注意**  
如果使用 Systems Manager 控制台创建激活，则无法为其分配标签。必须使用 Amazon CLI 或 Tools for Windows PowerShell 来创建激活。

如果您不再希望使用 Systems Manager 管理本地服务器或虚拟机 (VM)，可以将其取消注册。有关信息，请参阅[在混合和多云环境中取消注册托管式节点](fleet-manager-deregister-hybrid-nodes.md)。

**Topics**
+ [

## 使用 Amazon Web Services 管理控制台 创建用于将托管式节点注册到 Systems Manager 的激活
](#create-managed-node-activation-console)
+ [

## 使用命令行创建用于将托管式节点注册到 Systems Manager 的激活
](#create-managed-node-activation-command-line)

## 使用 Amazon Web Services 管理控制台 创建用于将托管式节点注册到 Systems Manager 的激活
<a name="create-managed-node-activation-console"></a>

**创建托管节点激活**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Hybrid Activations (混合激活)**。

1. 选择**创建激活**。

   –或者–

   如果您在当前 Amazon Web Services 区域首次访问 **Hybrid Activations**（混合激活）功能，请选择 **Create an Activation**（创建激活）。

1. （可选）对于 **Activation description**（激活描述），输入对此激活的描述。如果您计划激活大量服务器和虚拟机，我们建议您输入描述。

1. 在 **Instance limit**（实例限制）中，指定要在激活过程中注册到 Amazon 的节点总数。默认值为 1 个实例。

1. 对于 **IAM role**（IAM 角色），选择一个将允许您的服务器和虚拟机与云中的 Amazon Systems Manager 进行通信的服务角色选项：
   + **选项 1**：选择 **Use the default role created by the system**（使用系统创建的默认角色）以使用由 Amazon 提供的角色和托管式策略。
   + **选项 2**：选择 **Select an existing custom IAM role that has the required permissions**（选择一个具有所需权限的现有自定义 IAM 角色）以使用您之前创建的可选自定义角色。此角色必须具有指定 `"Service": "ssm.amazonaws.com"` 的信任关系策略。如果您的 IAM 角色未在信任关系策略中指定此原则，则会收到以下错误：

     ```
     An error occurred (ValidationException) when calling the CreateActivation
                                         operation: Not existing role: arn:aws:iam::<accountid>:role/SSMRole
     ```

     有关创建此角色的更多信息，请参阅 [在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色](hybrid-multicloud-service-role.md)。

1. 对于 **Activation expiry date**（激活到期日期），为该激活指定一个到期日期。到期日期必须是未来的某个日期，并且不能超出未来 30 天。默认值为 24 小时。
**注意**  
如果需要在过期日期后注册更多的托管式节点，您必须创建新的激活。过期日期对已注册且正在运行的节点没有任何影响。

1. （可选）在 **Default instance name**（默认实例名称）字段，指定要为与此激活关联的所有托管式节点显示的标识名称值。

1. 选择**创建激活**。Systems Manager 立即将激活码和 ID 返回到控制台。

## 使用命令行创建用于将托管式节点注册到 Systems Manager 的激活
<a name="create-managed-node-activation-command-line"></a>

以下过程介绍了如何使用 Amazon Command Line Interface (Amazon CLI)（在 Linux 或 Windows Server 上）或 Amazon Tools for PowerShell 创建托管节点激活。

**创建激活**

1. 安装并配置 Amazon CLI 或 Amazon Tools for PowerShell（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 Amazon CLI 的最新版本](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)以及[安装 Amazon Tools for PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up.html)。

1. 运行以下命令以创建一个激活。
**注意**  
在下面的命令中，将 *region* 替换为您自己的信息。有关支持的 *region* 值的列表，请参阅《Amazon Web Services 一般参考》**中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。
为 *iam-role* 参数指定的角色必须具有指定 `"Service": "ssm.amazonaws.com"` 的信任关系策略。如果您的 Amazon Identity and Access Management (IAM) 角色未在信任关系策略中指定此原则，则会收到以下错误：  

     ```
     An error occurred (ValidationException) when calling the CreateActivation
                                             operation: Not existing role: arn:aws:iam::<accountid>:role/SSMRole
     ```
有关创建此角色的更多信息，请参阅 [在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色](hybrid-multicloud-service-role.md)。
对于 `--expiration-date`，请提供时间戳格式的日期（例如 `"2021-07-07T00:00:00"`），以指示激活码何时过期。您最多可以提前 30 天指定日期。如果您未提供到期日期，激活码将在 24 小时内过期。

------
#### [ Linux & macOS ]

   ```
   aws ssm create-activation \
       --default-instance-name name \
       --iam-role iam-service-role-name \
       --registration-limit number-of-managed-instances \
       --region region \
       --expiration-date "timestamp" \\  
       --tags "Key=key-name-1,Value=key-value-1" "Key=key-name-2,Value=key-value-2"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-activation ^
       --default-instance-name name ^
       --iam-role iam-service-role-name ^
       --registration-limit number-of-managed-instances ^
       --region region ^
       --expiration-date "timestamp" ^
       --tags "Key=key-name-1,Value=key-value-1" "Key=key-name-2,Value=key-value-2"
   ```

------
#### [ PowerShell ]

   ```
   New-SSMActivation -DefaultInstanceName name `
       -IamRole iam-service-role-name `
       -RegistrationLimit number-of-managed-instances `
       –Region region `
       -ExpirationDate "timestamp" `
       -Tag @{"Key"="key-name-1";"Value"="key-value-1"},@{"Key"="key-name-2";"Value"="key-value-2"}
   ```

------

   见下列。

------
#### [ Linux & macOS ]

   ```
   aws ssm create-activation \
       --default-instance-name MyWebServers \
       --iam-role service-role/AmazonEC2RunCommandRoleForManagedInstances \
       --registration-limit 10 \
       --region us-east-2 \
       --expiration-date "2021-07-07T00:00:00" \
       --tags "Key=Environment,Value=Production" "Key=Department,Value=Finance"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-activation ^
       --default-instance-name MyWebServers ^
       --iam-role service-role/AmazonEC2RunCommandRoleForManagedInstances ^
       --registration-limit 10 ^
       --region us-east-2 ^
       --expiration-date "2021-07-07T00:00:00" ^
       --tags "Key=Environment,Value=Production" "Key=Department,Value=Finance"
   ```

------
#### [ PowerShell ]

   ```
   New-SSMActivation -DefaultInstanceName MyWebServers `
       -IamRole service-role/AmazonEC2RunCommandRoleForManagedInstances `
       -RegistrationLimit 10 `
       –Region us-east-2 `
       -ExpirationDate "2021-07-07T00:00:00" `
       -Tag @{"Key"="Environment";"Value"="Production"},@{"Key"="Department";"Value"="Finance"}
   ```

------

   如果成功创建激活，系统将立即返回一个激活代码和 ID。

# 在混合 Linux 节点上安装 SSM Agent
<a name="hybrid-multicloud-ssm-agent-install-linux"></a>

本主题介绍如何在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 EC2（Amazon Elastic Compute Cloud）Linux 计算机上安装 Amazon Systems Manager SSM Agent。有关在适用于 Linux 的 EC2 实例上安装 SSM Agent 的信息，请参阅[在适用于 Linux 的 EC2 实例上手动安装和卸载 SSM Agent](manually-install-ssm-agent-linux.md)。

开始之前，请找到在混合激活过程中生成的激活码和激活 ID，如 [创建混合激活以将节点注册到 Systems Manager](hybrid-activation-managed-nodes.md) 中所述。按照以下流程指定激活代码和 ID。

**在混合和多云环境中的非 EC2 计算机上安装 SSM Agent**

1. 登录混合和多云环境中的服务器或虚拟机。

1. 如果使用 HTTP 或 HTTPS 代理，则必须在当前 Shell 会话中设置 `http_proxy` 或 `https_proxy` 环境变量。如果您不使用代理，则可跳过此步骤。

   对于 HTTP 代理服务器，请在命令行中输入以下命令：

   ```
   export http_proxy=http://hostname:port
   export https_proxy=http://hostname:port
   ```

   对于 HTTPS 代理服务器，请在命令行中输入以下命令：

   ```
   export http_proxy=http://hostname:port
   export https_proxy=https://hostname:port
   ```

1. 将以下命令块之一复制并粘贴到 SSH 中。将占位符的值替换为在混合激活过程中生成的激活码和激活 ID，以及要从中下载 SSM Agent 的 Amazon Web Services 区域标识符，然后按 `Enter`。
**重要**  
请注意以下重要详细信息：  
`ssm-setup-cli` 用于非 EC2 安装可最大程度提高 Systems Manager 安装和配置的安全性。
如果您不是根用户，则 `sudo` 不是必需的。
从创建混合激活时所在的相同 Amazon Web Services 区域 下载 `ssm-setup-cli`。
`ssm-setup-cli` 支持 `manifest-url` 选项，该选项可用来确定代理的下载来源。除非您的组织要求，否则请勿为此选项指定任何值。
注册实例时，请仅使用为 `ssm-setup-cli` 提供的下载链接。`ssm-setup-cli` 不应另行存放以供将来使用。
您可以使用[此处](https://github.com/aws/amazon-ssm-agent/blob/mainline/Tools/src/setupcli_data_integrity_linux.sh)提供的脚本来验证 `ssm-setup-cli` 的签名。

   *region* 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符，例如 `us-east-2` 对应美国东部（俄亥俄州）区域。有关支持的 *region* 值的列表，请参阅*《Amazon Web Services 一般参考》*中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

   此外，`ssm-setup-cli` 包括以下选项：
   + `version` –有效值为 `latest` 和 `stable`。
   + `downgrade` – 允许将 SSM Agent 降级为早期版本。指定 `true` 安装早期版本的代理。
   + `skip-signature-validation` – 在下载和安装代理期间跳过签名验证。

## Amazon Linux 2、RHEL 7.x 和 Oracle Linux
<a name="cent-7"></a>

```
mkdir /tmp/ssm
curl https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli
sudo chmod +x /tmp/ssm/ssm-setup-cli
sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
```

## RHEL 8.x
<a name="cent-8"></a>

```
mkdir /tmp/ssm
curl https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli
sudo chmod +x /tmp/ssm/ssm-setup-cli
sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
```

## Debian Server
<a name="deb"></a>

```
mkdir /tmp/ssm
wget https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli
sudo chmod +x /tmp/ssm/ssm-setup-cli
sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
```

## Ubuntu Server
<a name="ubu"></a>
+ **使用 .deb 包**

  ```
  mkdir /tmp/ssm
  curl https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli
  sudo chmod +x /tmp/ssm/ssm-setup-cli
  sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
  ```
+ **使用 Snap 包**

  您无需为下载指定 URL，因为 `snap` 命令会自动从 [Snap 应用商店](https://snapcraft.io/amazon-ssm-agent) [https://snapcraft.io](https://snapcraft.io) 下载代理。

  在 Ubuntu Server 20.04、18.04 和 16.04 LTS 上，SSM Agent 安装程序文件（包括代理二进制文件和配置文件）均存储在以下目录中：`/snap/amazon-ssm-agent/current/`。如果要对此目录中的任何配置文件进行更改，则必须将这些文件从 `/snap` 目录复制到 `/etc/amazon/ssm/` 目录。日志和库文件未更改（`/var/lib/amazon/ssm`、`/var/log/amazon/ssm`）。

  ```
  sudo snap install amazon-ssm-agent --classic
  sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service
  sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" 
  sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
  ```
**重要**  
Snap Store 中的 *candidate* 通道包含最新版本的 SSM Agent；而 stable 通道中未包含。如果要跟踪 candidate 通道上的 SSM Agent 版本信息，请在您的 Ubuntu Server 18.04 和 16.04 LTS 64 位托管式节点上运行以下命令。  

  ```
  sudo snap switch --channel=candidate amazon-ssm-agent
  ```

此命令将 SSM Agent 下载并安装到混合和多云环境中的混合激活计算机上。此命令会停止 SSM Agent，然后向 Systems Manager 服务注册计算机。该计算机现在已是托管节点。为 Systems Manager 配置的 Amazon EC2 实例也是托管式节点。但在 Systems Manager 控制台中，您的混合激活节点与具有前缀“mi-”的 Amazon EC2 实例有区别。

继续[在混合 Windows Server 节点上安装 SSM Agent](hybrid-multicloud-ssm-agent-install-windows.md)。

## 设置私有密钥自动轮换
<a name="ssm-agent-hybrid-private-key-rotation-linux"></a>

为了加强安全状况，您可以将 Amazon Systems Manager 代理（SSM Agent）配置为自动轮换混合和多云环境私有密钥。您可以使用 SSM Agent 版本 3.0.1031.0 或更高版本来访问此功能。使用以下过程开启此功能。

**将 SSM Agent 配置为轮换混合和多云环境私有密钥**

1. 在 Linux 计算机上导航到 `/etc/amazon/ssm/`，或者在 Windows 计算机上导航到 `C:\Program Files\Amazon\SSM`。

1. 将 `amazon-ssm-agent.json.template` 的内容复制到名为 `amazon-ssm-agent.json` 的新文件中。Save`amazon-ssm-agent.json`在同一目录中，其中`amazon-ssm-agent.json.template`位于中。

1. 找到 `Profile`、`KeyAutoRotateDays`。输入您希望自动轮换私有密钥的间隔天数。

1. 重新启动 SSM Agent。

每次更改配置时，请重新启动 SSM Agent。

您可以按照相同的过程自定义 SSM Agent 的其他功能。有关可用配置属性及其默认值的最新列表，请参阅[配置属性定义](https://github.com/aws/amazon-ssm-agent#config-property-definitions)。

## 取消注册及重新注册托管式节点（Linux）
<a name="systems-manager-install-managed-linux-deregister-reregister"></a>

您可以从 Amazon CLI 或借助适用于 Windows PowerShell 的工具来调用 [DeregisterManagedInstance](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DeregisterManagedInstance.html) API 操作，以取消注册混合激活托管节点。以下是一个示例 CLI 命令：

`aws ssm deregister-managed-instance --instance-id "mi-1234567890"`

要移除代理的其余注册信息，请移除 `amazon-ssm-agent.json` 文件中的 `IdentityConsumptionOrder` 键。然后，根据安装类型运行下列命令之一。

在使用 Snap 软件包安装了 SSM Agent 的 Ubuntu Server 节点上：

```
sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -clear
```

在其余 Linux 安装上：

```
amazon-ssm-agent -register -clear
```

**注意**  
只要未达到指定激活码和 ID 的实例限制，就可以使用相同的激活码和 ID 重新注册本地服务器、边缘设备或虚拟机。您可以使用 Amazon CLI 调用 [describe-activations](https://docs.amazonaws.cn/cli/latest/reference/ssm/describe-activations.html) API 来验证激活码和 ID 的实例限制。运行命令后，请验证 `RegistrationCount` 的值是否未超过 `RegistrationLimit`。如果超过，则必须使用不同的激活码和 ID。

**在 非 EC2 Linux 计算机上重新注册托管节点**

1. 连接到您的计算机。

1. 运行如下命令。请务必将占位符的值替换为在创建托管节点激活时生成的激活码和激活 ID，以及要从中下载 SSM Agent 的区域标识符。

   ```
   echo "yes" | sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region
   ```

## 对非 EC2 Linux 计算机上的 SSM Agent 安装进行故障排除
<a name="systems-manager-install-managed-linux-troubleshooting"></a>

使用以下信息来帮助您解决混合激活 Linux 计算机在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中安装 SSM Agent 时出现的问题。

### 收到 DeliveryTimedOut 错误
<a name="systems-manager-install-managed-linux-troubleshooting-delivery-timed-out"></a>

**问题**：将一个 Amazon Web Services 账户 中的计算机配置为单独 Amazon Web Services 账户 的托管节点时，运行在目标计算机上安装 SSM Agent 的命令后，您将收到 `DeliveryTimedOut`。

**解决方案**：在此场景中，`DeliveryTimedOut` 是预期响应代码。在目标节点上安装 SSM Agent 的命令会更改源节点的节点 ID。由于节点 ID 已更改，源节点无法响应命令执行时失败、已完成或超时的目标节点。

### 无法加载节点关联
<a name="systems-manager-install-managed-linux-troubleshooting-associations"></a>

**问题**：运行安装命令后，SSM Agent 错误日志中显示以下错误：

`Unable to load instance associations, unable to retrieve associations unable to retrieve associations error occurred in RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint doesn't match`

当计算机 ID 在重启后不存在时，便会显示此错误。

**解决方案**：要解决此问题，请运行以下命令。此命令强制计算机 ID 在重启后保持不变。

```
umount /etc/machine-id
systemd-machine-id-setup
```

# 在混合 Windows Server 节点上安装 SSM Agent
<a name="hybrid-multicloud-ssm-agent-install-windows"></a>

本主题介绍如何在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的 Windows Server 计算机上安装 Amazon Systems Manager SSM Agent。有关在适用于 Windows Server 的 EC2 实例上安装 SSM Agent 的信息，请参阅[在适用于 Windows Server 的 EC2 实例上手动安装和卸载 SSM Agent](manually-install-ssm-agent-windows.md)。

开始之前，请找到在混合激活过程中生成的激活码和激活 ID，如 [创建混合激活以将节点注册到 Systems Manager](hybrid-activation-managed-nodes.md) 中所述。按照以下流程指定激活代码和 ID。

**在混合和多云环境中的非 EC2 Windows Server 计算机上安装 SSM Agent**

1. 登录混合和多云环境中的服务器或虚拟机。

1. 如果使用 HTTP 或 HTTPS 代理，则必须在当前 Shell 会话中设置 `http_proxy` 或 `https_proxy` 环境变量。如果您不使用代理，则可跳过此步骤。

   对于 HTTP 代理服务器，请设置以下变量：

   ```
   http_proxy=http://hostname:port
   https_proxy=http://hostname:port
   ```

   对于 HTTPS 代理服务器，请设置以下变量：

   ```
   http_proxy=http://hostname:port
   https_proxy=https://hostname:port
   ```

   对于 PowerShell，请配置 WinINet 代理设置：

   ```
   [System.Net.WebRequest]::DefaultWebProxy
   
   $proxyServer = "http://hostname:port"
   $proxyBypass = "169.254.169.254"
   $WebProxy = New-Object System.Net.WebProxy($proxyServer,$true,$proxyBypass)
   
   [System.Net.WebRequest]::DefaultWebProxy = $WebProxy
   ```
**注意**  
PowerShell 操作需要 WiniNet 代理配置。有关更多信息，请参阅 [SSM Agent 代理设置和 Systems Manager 服务](configure-proxy-ssm-agent-windows.md#ssm-agent-proxy-services)。

1. 在提升（管理）模式下打开 Windows PowerShell。

1. 将以下命令块复制并粘贴到 Windows PowerShell 中。将每个*示例资源占位符*替换为您自己的信息。例如，在创建混合激活时生成的激活代码和激活 ID，以及带有您要从中下载 SSM Agent 的 Amazon Web Services 区域 标识符的激活代码和激活 ID。
**重要**  
请注意以下重要详细信息：  
`ssm-setup-cli` 用于非 EC2 安装可最大程度提高 Systems Manager 安装和配置的安全性。
`ssm-setup-cli` 支持 `manifest-url` 选项，该选项可用来确定代理的下载来源。除非您的组织要求，否则请勿为此选项指定任何值。
您可以使用[此处](https://github.com/aws/amazon-ssm-agent/blob/mainline/Tools/src/setupcli_data_integrity_windows.ps1)提供的脚本来验证 `ssm-setup-cli` 的签名。
注册实例时，请仅使用为 `ssm-setup-cli` 提供的下载链接。`ssm-setup-cli` 不应另行存放以供将来使用。

   *region* 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符，例如 `us-east-2` 对应美国东部（俄亥俄州）区域。有关支持的 *region* 值的列表，请参阅*《Amazon Web Services 一般参考》*中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

   此外，`ssm-setup-cli` 包括以下选项：
   + `version` –有效值为 `latest` 和 `stable`。
   + `downgrade` – 将代理恢复到早期版本。
   + `skip-signature-validation` – 在下载和安装代理期间跳过签名验证。

------
#### [ 64-bit ]

   ```
   $code = "activation-code"
   $id = "activation-id"
   $region = "region"
   $dir = $env:TEMP + "\ssm"
   New-Item -ItemType directory -Path $dir -Force
   cd $dir
   (New-Object System.Net.WebClient).DownloadFile("https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/windows_amd64/ssm-setup-cli.exe", $dir + "\ssm-setup-cli.exe")
   Start-Process ./ssm-setup-cli.exe -ArgumentList @("-register", "-activation-code=$code", "-activation-id=$id", "-region=$region") -Wait
   Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration")
   Get-Service -Name "AmazonSSMAgent"
   ```

------

1. 按 `Enter`。

**注意**  
如果命令失败，确认运行的是否是最新版本的 Amazon Tools for PowerShell。

此命令执行以下操作：
+ 下载并在计算机上安装 SSM Agent。
+ 向 Systems Manager 服务注册计算机。
+ 返回类似以下内容的请求响应：

  ```
      Directory: C:\Users\ADMINI~1\AppData\Local\Temp\2
  
  
  Mode                LastWriteTime         Length Name
  ----                -------------         ------ ----
  d-----       07/07/2018   8:07 PM                ssm
  {"ManagedInstanceID":"mi-008d36be46EXAMPLE","Region":"us-east-2"}
  
  Status      : Running
  Name        : AmazonSSMAgent
  DisplayName : Amazon SSM Agent
  ```

该计算机现在已是*托管节点*。现在，这些托管式节点带有前缀“mi-”作为标识。您可以使用 Amazon CLI 命令 [https://docs.amazonaws.cn/cli/latest/reference/ssm/describe-instance-information.html](https://docs.amazonaws.cn/cli/latest/reference/ssm/describe-instance-information.html) 或使用 API 命令 [https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DescribeInstanceInformation.html](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DescribeInstanceInformation.html)，在 Fleet Manager 中的**托管式节点**页面上查看托管式节点。

## 设置私有密钥自动轮换
<a name="ssm-agent-hybrid-private-key-rotation-windows"></a>

为了加强安全状况，您可以将 Amazon Systems Manager 代理（SSM Agent）配置为自动轮换混合和多云环境私有密钥。您可以使用 SSM Agent 版本 3.0.1031.0 或更高版本来访问此功能。使用以下过程开启此功能。

**将 SSM Agent 配置为轮换混合和多云环境私有密钥**

1. 在 Linux 计算机上导航到 `/etc/amazon/ssm/`，或者在 Windows Server 计算机上导航到 `C:\Program Files\Amazon\SSM`。

1. 将 `amazon-ssm-agent.json.template` 的内容复制到名为 `amazon-ssm-agent.json` 的新文件中。Save`amazon-ssm-agent.json`在同一目录中，其中`amazon-ssm-agent.json.template`位于中。

1. 找到 `Profile`、`KeyAutoRotateDays`。输入您希望自动轮换私有密钥的间隔天数。

1. 重新启动 SSM Agent。

每次更改配置时，请重新启动 SSM Agent。

您可以按照相同的过程自定义 SSM Agent 的其他功能。有关可用配置属性及其默认值的最新列表，请参阅[配置属性定义](https://github.com/aws/amazon-ssm-agent#config-property-definitions)。

## 取消注册及重新注册托管式节点（Windows Server）
<a name="systems-manager-install-managed-win-deregister-reregister"></a>

您可以从 Amazon CLI 或借助适用于 Windows PowerShell 的工具来调用 [DeregisterManagedInstance](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DeregisterManagedInstance.html) API 操作，以取消注册托管节点。以下是一个示例 CLI 命令：

`aws ssm deregister-managed-instance --instance-id "mi-1234567890"`

要移除代理的其余注册信息，请移除 `amazon-ssm-agent.json` 文件中的 `IdentityConsumptionOrder` 键。然后运行以下命令：

`amazon-ssm-agent -register -clear`

**注意**  
只要未达到指定激活码和 ID 的实例限制，就可以使用相同的激活码和 ID 重新注册本地服务器、边缘设备或虚拟机。您可以使用 Amazon CLI 调用 [describe-activations](https://docs.amazonaws.cn/cli/latest/reference/ssm/describe-activations.html) API 来验证激活码和 ID 的实例限制。运行命令后，请验证 `RegistrationCount` 的值是否未超过 `RegistrationLimit`。如果超过，则必须使用不同的激活码和 ID。

**在 Windows Server 混合计算机上重新注册托管节点**

1. 连接到您的计算机。

1. 运行如下命令。请务必将占位符的值替换为在创建混合激活时生成的激活码和激活 ID，以及要从中下载 SSM Agent 的区域标识符。

   ```
   $dir = $env:TEMP + "\ssm"
   cd $dir
   Start-Process ./ssm-setup-cli.exe -ArgumentList @(
       "-register",
       "-activation-code=$code",
       "-activation-id=$id",
       "-region=$region"
   ) -Wait -NoNewWindow
   ```

# 使用 Systems Manager 管理边缘设备
<a name="systems-manager-setting-up-edge-devices"></a>

本节介绍账户和系统管理员为启用 Amazon IoT Greengrass 核心设备的配置和管理而执行的设置任务。完成这些任务后，已获得 Amazon Web Services 账户 管理员所授予权限的用户可使用 Amazon Systems Manager 来配置及管理其企业的 Amazon IoT Greengrass 核心设备。

**注意**  
macOS 和 Windows 10 不支持适用于 Amazon IoT Greengrass 的 SSM Agent。您不能使用 Systems Manager 工具来管理及配置使用这两种操作系统的边缘设备。
Systems Manager 还支持未配置为 Amazon IoT Greengrass 核心设备的边缘设备。要使用 Systems Manager 管理 Amazon IoT 核心设备和非 Amazon 边缘设备，必须使用混合激活来对其进行配置。有关更多信息，请参阅 [使用 Systems Manager 管理混合和多云环境中的节点](systems-manager-hybrid-multicloud.md)。
要将 Session Manager 和 Microsoft 应用程序补丁与您的边缘设备搭配使用，必须启用高级实例套餐。有关更多信息，请参阅 [打开高级实例套餐](fleet-manager-enable-advanced-instances-tier.md)。

**开始前的准备工作**  
确认您的边缘设备满足以下要求。
+ 边缘设备必须满足将其配置为 Amazon IoT Greengrass 核心设备的要求。有关更多信息，请参阅 [Amazon IoT Greengrass 开发人员指南](https://docs.amazonaws.cn/greengrass/v2/developerguide/setting-up.html)中的*设置 Amazon IoT Greengrass Version 2 核心设备*。
+ 边缘设备必须与 Amazon Systems Manager Agent (SSM Agent) 兼容。有关更多信息，请参阅 [Systems Manager 支持的操作系统](operating-systems-and-machine-types.md#prereqs-operating-systems)。
+ 边缘设备必须能够与云中的 Systems Manager 服务通信。Systems Manager 不支持已断开连接的边缘设备。

**关于设置边缘设备**  
为 Systems Manager 设置 Amazon IoT Greengrass 设备涉及以下过程。

**注意**  
有关从边缘设备中卸载 SSM Agent 的信息，请参阅《*Amazon IoT Greengrass Version 2 开发人员指南*》中的[卸载 Amazon Systems Manager Agent](https://docs.amazonaws.cn/greengrass/v2/developerguide/uninstall-systems-manager-agent.html)。

## 为您的边缘设备创建 IAM 服务角色
<a name="systems-manager-setting-up-edge-devices-service-role"></a>

Amazon IoT Greengrass 核心设备需要 Amazon Identity and Access Management (IAM) 服务角色才能与 Amazon Systems Manager 通信。此角色向 Amazon Security Token Service (Amazon STS) [https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html](https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html) 授予对 Systems Manager 服务的信任。您只需为每个 Amazon Web Services 账户 创建此服务角色一次。在为 Amazon IoT Greengrass 设备配置及部署 SSM Agent 组件时，您需为 `RegistrationRole` 参数指定此角色。如果在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中设置非 EC2 节点时已创建此角色，则可以跳过此步骤。

**注意**  
贵公司或企业中如果有用户要在边缘设备上使用 Systems Manager，则必须在 IAM 中为其授予调用 Systems Manager API 的权限。

**S3 存储桶策略要求**  
如果出现以下任一情况，您必须在完成此过程之前为 Amazon Simple Storage Service (Amazon S3) 存储桶创建自定义 IAM 权限策略：
+ **情况 1**：您通过一个 VPC 端点以私有方式将您的 VPC 连接到受支持的 Amazon Web Services 服务，以及由 Amazon PrivateLink 提供支持的 VPC 端点服务。
+ **情况 2**：您打算使用在 Systems Manager 操作期间创建的 S3 存储桶，如将 Run Command 命令或 Session Manager 会话的输出存储到 S3 存储桶中。在继续之前，请按照[为实例配置文件创建自定义 S3 存储桶策略](setup-instance-permissions.md#instance-profile-custom-s3-policy)中的步骤进行操作。该主题中有关 S3 存储桶策略的信息也适用于服务角色。
**注意**  
如果您的设备受防火墙保护且您计划使用 Patch Manager，则防火墙必须允许对补丁基准端点 `arn:aws:s3:::patch-baseline-snapshot-region/*` 进行访问。  
*region* 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符，例如 `us-east-2` 对应美国东部（俄亥俄州）区域。有关支持的 *region* 值的列表，请参阅《Amazon Web Services 一般参考》**中的 [Systems Manager service endpoints](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

------
#### [ Amazon CLI ]

**为 Amazon IoT Greengrass 环境创建 IAM 服务角色 (Amazon CLI)**

1. 安装并配置 Amazon Command Line Interface（Amazon CLI）（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 Amazon CLI 的最新版本](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)。

1. 在本地计算机上使用以下信任策略创建一个文本文件，文件名称类似于 `SSMService-Trust.json`。确保使用 `.json` 文件扩展名保存该文件。
**注意**  
记录下名称。您需在将 SSM Agent 部署到 Amazon IoT Greengrass 核心设备时指定此名称。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Principal": {
               "Service": "ssm.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }
   }
   ```

------

1. 打开 Amazon CLI，在创建该 JSON 文件的目录下，运行 [create-role](https://docs.amazonaws.cn/cli/latest/reference/iam/create-role.html) 命令以创建服务角色。将每个*示例资源占位符*替换为您自己的信息。

   **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
   ```

1. 按如下方式运行 [attach-role-policy](https://docs.amazonaws.cn/cli/latest/reference/iam/attach-role-policy.html) 命令，以允许您刚创建的服务角色创建会话令牌。该会话令牌向您的边缘设备授予使用 Systems Manager 运行命令的权限。
**注意**  
您为边缘设备的服务配置文件添加的策略与用于为 Amazon Elastic Compute Cloud (Amazon EC2) 实例创建实例配置文件的策略相同。有关以下命令中使用的 IAM 策略的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。

   （必需）运行以下命令以允许边缘设备使用 Amazon Systems Manager 服务核心功能。

   **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) 访问在该策略中指定的存储桶。将 *account\$1ID* 和 *my\$1bucket\$1policy\$1name* 替换为您的 Amazon Web Services 账户 ID 和存储桶名称。

   **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 和 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。仅当您要使用 Amazon EventBridge 或 Amazon CloudWatch Logs 等服务时，服务角色才需要使用此策略。

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

------
#### [ Tools for PowerShell ]

**为 Amazon IoT Greengrass 环境创建 IAM 服务角色 (Amazon Tools for Windows PowerShell)**

1. 如果您尚未安装和配置 Amazon Tools for PowerShell（适用于 Windows PowerShell 的工具），请执行这些操作。

   有关信息，请参阅[安装 Amazon Tools for PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up.html)。

1. 在本地计算机上使用以下信任策略创建一个文本文件，文件名称类似于 `SSMService-Trust.json`。确保使用 `.json` 文件扩展名保存该文件。
**注意**  
记录下名称。您需在将 SSM Agent 部署到 Amazon IoT Greengrass 核心设备时指定此名称。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Principal": {
               "Service": "ssm.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }
   }
   ```

------

1. 在管理模式下打开 PowerShell，在创建此 JSON 文件的目录中，按如下方式运行 [New-IAMRole](https://docs.amazonaws.cn//powershell/latest/reference/items/Register-IAMRolePolicy.html) 以创建服务角色。

   ```
   New-IAMRole `
       -RoleName SSMServiceRole `
       -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
   ```

1. 按如下方式使用 [Register-IAMRolePolicy](https://docs.amazonaws.cn/powershell/latest/reference/items/Register-IAMRolePolicy.html)，以允许您创建的服务角色创建会话令牌。该会话令牌向您的边缘设备授予使用 Systems Manager 运行命令的权限。
**注意**  
您为 Amazon IoT Greengrass 环境中边缘设备的服务角色添加的策略与用于为 EC2 实例创建实例配置文件的策略相同。有关以下命令中使用的 Amazon 策略的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。

   （必需）运行以下命令以允许边缘设备使用 Amazon Systems Manager 服务核心功能。

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

   如果为服务角色创建了自定义 S3 存储桶策略，请运行以下命令，以允许 SSM Agent 访问在该策略中指定的存储桶。将 *account\$1ID* 和 *my\$1bucket\$1policy\$1name* 替换为您的 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。仅当您要使用 Amazon EventBridge 或 Amazon CloudWatch Logs 等服务时，服务角色才需要使用此策略。

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

------

## 配置 Amazon IoT Greengrass 的边缘设备
<a name="systems-manager-edge-devices-set-up-greengrass"></a>

将边缘设备设置为 Amazon IoT Greengrass 核心设备。设置过程包括确认支持的操作系统和系统要求，以及安装和配置设备上的 Amazon IoT Greengrass Core 软件。有关更多信息，请参阅 [Amazon IoT Greengrass 开发人员指南](https://docs.amazonaws.cn/greengrass/v2/developerguide/setting-up.html)中的*设置 Amazon IoT Greengrass Version 2 核心设备*。

## 更新 Amazon IoT Greengrass 令牌交换角色并在边缘设备上安装 SSM Agent
<a name="systems-manager-edge-devices-install-SSM-agent"></a>

在为 Systems Manager 设置和配置 Amazon IoT Greengrass 核心设备的最后一步中，您需要更新 Amazon IoT Greengrass Amazon Identity and Access Management（IAM）设备服务角色（也称为*令牌交换角色*），以及将 Amazon Systems Manager Agent（SSM Agent）部署到 Amazon IoT Greengrass 设备。有关这些过程的信息，请参阅《Amazon IoT Greengrass Version 2 Developer Guide》**中的 [Install the Amazon Systems Manager Agent](https://docs.amazonaws.cn/greengrass/v2/developerguide/install-systems-manager-agent.html)。

将 SSM Agent 部署到设备后，Amazon IoT Greengrass 会自动向 Systems Manager 注册您的设备。除此之外，无需进行其他注册。您可以开始使用 Systems Manager 工具来访问、管理和配置 Amazon IoT Greengrass 设备。

**注意**  
边缘设备必须能够与云中的 Systems Manager 服务通信。Systems Manager 不支持已断开连接的边缘设备。

# 为 Systems Manager 创建 Amazon Organizations 委派管理员
<a name="setting_up_delegated_admin"></a>

**Change Manager 可用性变更**  
自 2025 年 11 月 7 日起，Amazon Systems Manager Change Manager 将不再向新客户开放。如果想要使用 Change Manager，请在该日期之前注册。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [Amazon Systems Manager Change Manager 可用性变更](https://docs.amazonaws.cn/systems-manager/latest/userguide/change-manager-availability-change.html)。

在 Amazon Organizations 中设置组织时，您可以分配管理账户来执行所有 Amazon Web Services 服务 的所有管理任务。管理账户用户只能为 Systems Manager 分配*委派管理员账户*，以执行 Change Manager、Explorer 和 OpsCenter 的管理任务。Amazon Organizations 是一项账户管理服务，您可以用它来创建组织并分配 Amazon Web Services 账户 以集中管理这些账户。有关 Amazon Organizations 的信息，请参阅《Amazon Organizations 用户指南》**中的 [Amazon Organizations](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_introduction.html)。

Change Manager、Explorer 和 OpsCenter（都是 Amazon Systems Manager 中的工具）与 Amazon Organizations 配合使用，可在组织的所有成员账户上执行任务。您只能为所有 Systems Manager 工具分配一名委派管理员。委派管理员账户必须是其分配到的组织的成员。

**Topics**
+ [

## 对 Change Manager 使用委派管理员
](#setting_up_delegated_administrator_change_manager)
+ [

## 对 Explorer 使用委派管理员
](#setting_up_delegated_administrator_explorer)
+ [

## 对 OpsCenter 使用委派管理员
](#setting_up_delegated_administrator_opscenter)
+ [

## 对 Quick Setup 使用委派管理员
](#setting_up_delegated_administrator_quick_setup)

## 对 Change Manager 使用委派管理员
<a name="setting_up_delegated_administrator_change_manager"></a>

Change Manager 是一个企业变更管理框架，用于请求、批准、实施和报告应用程序配置和基础设施的操作变更。

如果您在整个组织中使用 Change Manager，请分配委派管理员账户来管理所有成员账户的变更模板、批准和报告。使用 Quick Setup 功能，您可以将 Change Manager 设置为与组织一起使用并选择委派管理员账户。如果您将 Change Manager 与单个 Amazon Web Services 账户 一起使用，则不需要委派管理员账户。

默认情况下，Change Manager 显示委派管理员账户中所有与变更相关的任务。有关在为组织设置 Change Manager 时配置委派管理员的说明，请参阅[为组织设置 Change Manager（管理账户）](change-manager-organization-setup.md)。

**重要**  
如果您在整个组织中使用 Change Manager，我们建议始终从委托管理员账户进行更改。虽然您可以从组织中的其他账户进行更改，但这些更改不会在委派管理员账户中报告，也无法从该账户查看。

## 对 Explorer 使用委派管理员
<a name="setting_up_delegated_administrator_explorer"></a>

Explorer 是一个可自定义的运营控制面板，用于报告跨 Amazon Web Services 区域 的 Amazon Web Services 账户 运营数据（OpsData）的聚合视图。

 您可以为 Systems Manager 配置委派管理员账户，以通过将资源数据同步与 Amazon Organizations 结合使用来聚合多个区域和账户的 Explorer 数据。委派管理员可以使用 Amazon Web Services 管理控制台、Amazon Command Line Interface（Amazon CLI）或 Amazon Tools for Windows PowerShell 搜索、筛选和聚合 Explorer 数据。

您为 Explorer 使用委派管理员账户时，您可以将管理员数量限制为一个 Amazon Web Services 账户，只有此管理员可以创建或删除多账户和区域资源。

您可以使用 Explorer，跨组织里的所有 Amazon Web Services 账户 同步操作数据。有关如何从 Explorer 中分配委派管理员的信息，请参阅 [为 Explorer 配置委派管理员](Explorer-setup-delegated-administrator.md)。

## 对 OpsCenter 使用委派管理员
<a name="setting_up_delegated_administrator_opscenter"></a>

OpsCenter 是提供了一个中心位置，运营工程师和 IT 专业人员可在此处管理与 Amazon 资源相关的运营工作项（OpsItems）。如果您想使用 OpsCenter 跨账户集中管理 OpsItems，则必须在 Amazon Organizations 中设置组织。

使用 OpsCenter 的 Quick Setup，您可以分配委派管理员账户并配置 OpsCenter 来集中管理 OpsItems。有关更多信息，请参阅 [（可选）使用 Quick Setup 配置 OpsCenter 以跨账户管理 OpsItems](OpsCenter-quick-setup-cross-account.md)。

## 对 Quick Setup 使用委派管理员
<a name="setting_up_delegated_administrator_quick_setup"></a>

Quick Setup是 Systems Manager 中的一项工具，可帮助您使用推荐的最佳实践快速配置常用的 Amazon 服务和功能。您可以为Quick Setup配置委派管理员账户，以帮助您使用 Amazon Organizations 跨账户和区域部署和管理配置。Quick Setup的委派管理员可以在您的组织中创建、更新、查看和删除配置管理器资源。作为集成控制台体验设置过程的一部分，Systems Manager 会为Quick Setup注册一个委派管理员。有关更多信息，请参阅 [为组织设置 Systems Manager 统一控制台](systems-manager-setting-up-organizations.md)。

## Amazon Systems Manager 的常规设置
<a name="setting_up_prerequisites"></a>

如果尚未进行此操作，请注册 Amazon Web Services 账户 并创建管理用户。

### 注册 Amazon Web Services 账户
<a name="sign-up-for-aws"></a>

如果您还没有，Amazon Web Services 账户请完成以下步骤来创建一个。

**注册 Amazon Web Services 账户**

1. 打开 [https://portal.aws.amazon.com/billing/signup](https://portal.amazonaws.cn/billing/signup)。

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册 Amazon Web Services 账户 时，系统将会创建一个。*Amazon Web Services 账户根用户*根用户有权访问该账户中的所有 Amazon Web Services 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

注册过程完成后，Amazon 会向您发送一封确认电子邮件。在任何时候，您都可以通过转至 [https://aws.amazon.com/](https://www.amazonaws.cn/) 并选择**我的账户**来查看当前的账户活动并管理您的账户。

### 保护 IAM 用户
<a name="secure-an-admin"></a>

注册 Amazon Web Services 账户 后，启用多重身份验证（MFA）保护您的管理用户。有关说明，请参阅《IAM 用户指南》**中的 [为 IAM 用户启用虚拟 MFA 设备（控制台）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html#enable-virt-mfa-for-iam-user)。

要授予其他用户访问您的 Amazon Web Services 账户资源的权限，请创建 IAM 用户。为了保护您的 IAM 用户，请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。

有关创建和保护 IAM 用户的更多信息，请参阅《IAM 用户指南》中的以下主题：**
+ [在您的 Amazon Web Services 账户中创建 IAM 用户](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_users_create.html)
+ [适用于 Amazon 资源的访问权限管理](https://docs.amazonaws.cn/IAM/latest/UserGuide/access.html)
+ [基于 IAM 身份的策略示例](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_examples.html)