

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

# 为 Session Manager 创建自定义 IAM 角色
<a name="getting-started-create-iam-instance-profile"></a>

您可以创建一个 AWS Identity and Access Management（IAM）角色来授予 Session Manager 对您的 Amazon EC2 托管实例执行操作的权限。您还可以在其中包含一个策略，以授予将会话日志发送到 Amazon Simple Storage Service（Amazon S3）和 Amazon CloudWatch Logs 所需的权限。

创建 IAM 角色后，如需关于如何将角色附加到实例的信息，请参阅 AWS re:Post 网站上的[附加或替换实例配置文件](https://aws.amazon.com/premiumsupport/knowledge-center/attach-replace-ec2-instance-profile/)。有关 IAM 实例配置文件和角色的更多信息，请参阅《IAM 用户指南》**中的[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)和《Amazon Elastic Compute Cloud 用户指南（适用于 Linux 实例）》**中的[适用于 Amazon EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)。有关为本地计算机创建 IAM 服务角色的更多信息，请参阅[在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色](https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-service-role.html)。

**Topics**
+ [创建具有最小 Session Manager 权限的 IAM 角色（控制台）](#create-iam-instance-profile-ssn-only)
+ [创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色（控制台）](#create-iam-instance-profile-ssn-logging)

## 创建具有最小 Session Manager 权限的 IAM 角色（控制台）
<a name="create-iam-instance-profile-ssn-only"></a>

使用以下过程可创建一个自定义 IAM 角色，其策略仅提供在实例上执行 Session Manager 操作的权限。

**创建具有最小 Session Manager 权限的实例配置文件（控制台）**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中选择**策略**，然后选择**创建策略**。（如果显示 **Get Started (入门)** 按钮，请选择此按钮，然后选择 **Create Policy (创建策略)**。）

1. 选择 **JSON** 选项卡。

1. 将原定设置内容替换为以下策略。要使用 AWS Key Management Service（AWS KMS）加密会话数据，请将 *key-name* 替换为您要使用的 AWS KMS key 的 Amazon 资源名称（ARN）。
**注意**  
如果从附加到 IAM 实例配置文件或 IAM 服务角色的策略中移除 `ssmmessages:OpenControlChannel` 权限，则托管节点上的 SSM Agent 将失去与云端 Systems Manager 服务的连接。但是，移除权限后，连接最多可能需要 1 小时才能终止。这与删除 IAM 实例角色或 IAM 服务角色时的行为相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:UpdateInstanceInformation",
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           }
       ]
   }
   ```

------

   有关使用 KMS 密钥加密会话数据的信息，请参阅 [启用会话数据的 KMS 密钥加密（控制台）](session-preferences-enable-encryption.md)。

   如果您不为会话数据使用 AWS KMS 加密，可以从策略中删除以下内容。

   ```
   ,
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "key-name"
           }
   ```

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

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

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

1. 在**查看策略**页面上，对于**名称**，输入内联策略的名称，例如 **SessionManagerPermissions**。

1. （可选）对于**描述**，输入策略的描述。

1. 选择 **Create policy (创建策略)**。

1. 在导航窗格中，选择 **Roles（角色）**，然后选择 **Create role（创建角色）**。

1. 在 **Create role**（创建角色）页面上，选择 **AWS service**（ 服务），对于 **Use case**（使用案例），选择 **EC2**。

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

1. 在 **Add permissions**（添加权限）页面上，选中刚刚创建的策略名称左侧的复选框，例如 **SessionManagerPermissions**。

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

1. 在 **Name, review, and create**（名称、审核和创建）页面中，对于 **Role name**（角色名称），输入 IAM 角色的名称，例如 **MySessionManagerRole**。

1. （可选）对于**角色描述**，输入实例配置文件的描述。

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

   选择**创建角色**。

有关 `ssmmessages` 操作的信息，请参阅 [参考：ec2messages、ssmmessages 和其他 API 操作](systems-manager-setting-up-messageAPIs.md)。

## 创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色（控制台）
<a name="create-iam-instance-profile-ssn-logging"></a>

使用以下过程创建一个自定义 IAM 角色，其策略提供在实例上执行 Session Manager 操作的权限。此策略还提供了将会话日志存储在 Amazon Simple Storage Service (Amazon S3) 存储桶和 Amazon CloudWatch Logs 日志组中所需的权限。

**重要**  
要将会话日志输出到其他 AWS 账户 拥有的 Amazon S3 存储桶，您必须将 `s3:PutObjectAcl` 权限添加到 IAM 角色策略。此外，您必须确保存储桶策略授予对拥有账户使用的 IAM 角色的跨账户存取权限，来授予 Systems Manager 托管实例的权限。如果存储桶使用密钥管理服务（KMS）加密，则存储桶的 KMS 策略还必须授予此跨账户存取权限。有关在 Amazon S3 中配置跨账户存储桶权限的信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[授予跨账户存储桶权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html)。如果跨账户权限未添加，则拥有 Amazon S3 存储桶的账户将无法访问会话输出日志。

有关指定存储会话日志的首选项的信息，请参阅 [启用和禁用会话日志记录](session-manager-logging.md)。

**要创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色（控制台），请执行以下步骤**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中选择**策略**，然后选择**创建策略**。（如果显示 **Get Started (入门)** 按钮，请选择此按钮，然后选择 **Create Policy (创建策略)**。）

1. 选择 **JSON** 选项卡。

1. 将原定设置内容替换为以下策略。将每个*示例资源占位符*替换为您自己的信息。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel",
                   "ssm:UpdateInstanceInformation"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/s3-prefix/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           },
           {
               "Effect": "Allow",
               "Action": "kms:GenerateDataKey",
               "Resource": "*"
           }
       ]
   }
   ```

------

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

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

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

1. 在**查看策略**页面上，对于**名称**，输入内联策略的名称，例如 **SessionManagerPermissions**。

1. （可选）对于**描述**，输入策略的描述。

1. 选择 **Create policy (创建策略)**。

1. 在导航窗格中，选择 **Roles（角色）**，然后选择 **Create role（创建角色）**。

1. 在 **Create role**（创建角色）页面上，选择 **AWS service**（ 服务），对于 **Use case**（使用案例），选择 **EC2**。

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

1. 在 **Add permissions**（添加权限）页面上，选中刚刚创建的策略名称左侧的复选框，例如 **SessionManagerPermissions**。

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

1. 在 **Name, review, and create**（名称、审核和创建）页面中，对于 **Role name**（角色名称），输入 IAM 角色的名称，例如 **MySessionManagerRole**。

1. （可选）对于 **Role description**(角色描述)，输入角色的描述。

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

1. 选择**创建角色**。