

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

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

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

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

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

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

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

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

AWS IoT Greengrass 核心设备需要 AWS Identity and Access Management (IAM) 服务角色才能与 AWS Systems Manager 通信。此角色向 AWS Security Token Service (AWS STS) [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 授予对 Systems Manager 服务的信任。您只需为每个 AWS 账户 创建此服务角色一次。在为 AWS 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 连接到受支持的 AWS 服务，以及由 AWS 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* 表示 AWS Systems Manager 支持的 AWS 区域 的标识符，例如 `us-east-2` 对应美国东部（俄亥俄州）区域。有关支持的 *region* 值的列表，请参阅《Amazon Web Services 一般参考》**中的 [Systems Manager service endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

------
#### [ AWS CLI ]

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

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

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

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

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

****  

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

------

1. 打开 AWS CLI，在创建该 JSON 文件的目录下，运行 [create-role](https://docs.aws.amazon.com/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.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) 命令，以允许您刚创建的服务角色创建会话令牌。该会话令牌向您的边缘设备授予使用 Systems Manager 运行命令的权限。
**注意**  
您为边缘设备的服务配置文件添加的策略与用于为 Amazon Elastic Compute Cloud (Amazon EC2) 实例创建实例配置文件的策略相同。有关以下命令中使用的 IAM 策略的更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)。

   （必需）运行以下命令以允许边缘设备使用 AWS 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 存储桶策略，请运行以下命令，以允许 AWS Systems Manager Agent (SSM Agent) 访问在该策略中指定的存储桶。将 *account\$1ID* 和 *my\$1bucket\$1policy\$1name* 替换为您的 AWS 账户 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 代表您访问 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 ]

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

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

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

1. 在本地计算机上使用以下信任策略创建一个文本文件，文件名称类似于 `SSMService-Trust.json`。确保使用 `.json` 文件扩展名保存该文件。
**注意**  
记录下名称。您需在将 SSM Agent 部署到 AWS 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.aws.amazon.com//powershell/latest/reference/items/Register-IAMRolePolicy.html) 以创建服务角色。

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

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

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

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

   如果为服务角色创建了自定义 S3 存储桶策略，请运行以下命令，以允许 SSM Agent 访问在该策略中指定的存储桶。将 *account\$1ID* 和 *my\$1bucket\$1policy\$1name* 替换为您的 AWS 账户 ID 和存储桶名称。

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

   （可选）运行以下命令以允许 SSM Agent 代表您访问 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
   ```

------

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

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

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

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

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

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