为 Session Manager 创建自定义 IAM 角色 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Session Manager 创建自定义 IAM 角色

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

创建 IAM 角色后,如需关于如何将角色附加到实例的信息,请参阅 Amazon Web Services re:Post 网站上的附加或替换实例配置文件。有关 IAM 实例配置文件和角色的更多信息,请参阅《IAM 用户指南》中的使用实例配置文件和《Amazon Elastic Compute Cloud 用户指南(适用于 Linux 实例)》中的适用于 Amazon EC2 的 IAM 角色。有关为本地计算机创建 IAM 服务角色的更多信息,请参阅为混合环境创建 IAM 服务角色

创建具有最小 Session Manager 权限的 IAM 角色(控制台)

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

创建具有最小 Session Manager 权限的实例配置文件(控制台)
  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

  3. 请选择 JSON 选项卡。

  4. 将原定设置内容替换为以下策略。要使用 Amazon Key Management Service(Amazon KMS)加密会话数据,请将 key-name 替换为您要使用的 Amazon KMS key 的 Amazon 资源名称(ARN)。

    { "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": "key-name" } ] }

    有关使用 KMS 密钥加密会话数据的信息,请参阅 启用会话数据的 KMS 密钥加密(控制台)

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

    , { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name" }
  5. 请选择下一步:标签

  6. (可选)通过选择 Add tag(添加标签)并输入策略的首选标签来添加标签。

  7. 选择 Next: Review(下一步: 审核)

  8. 查看策略页面上,对于名称,输入内联策略的名称,例如 SessionManagerPermissions

  9. (可选)对于 Description (描述),输入策略的描述。

  10. 选择 Create policy (创建策略)

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

  12. Create role(创建角色)页面上,选择 Amazon service( 服务),对于 Use case(使用案例),选择 EC2

  13. 选择 Next(下一步)。

  14. Add permissions(添加权限)页面上,选中刚刚创建的策略名称左侧的复选框,例如 SessionManagerPermissions

  15. 选择 Next(下一步)。

  16. Name, review, and create(名称、审核和创建)页面中,对于 Role name(角色名称),输入 IAM 角色的名称,例如 MySessionManagerRole

  17. (可选)对于角色描述,输入实例配置文件的描述。

  18. (可选)通过选择 Add tag(添加标签)并输入角色的首选标签来添加标签。

    选择 Create role(创建角色)。

有关 ssmmessages 操作的信息,请参阅 参考:ec2messages、ssmmessages 和其他 API 操作

创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色(控制台)

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

重要

要将会话日志输出到其他 Amazon Web Services 账户 拥有的 Amazon S3 存储桶,您必须将 s3:PutObjectAcl 权限添加到 IAM 角色策略。此外,您必须确保存储桶策略授予对拥有账户使用的 IAM 角色的跨账户存取权限,来授予 Systems Manager 托管实例的权限。如果存储桶使用密钥管理服务(KMS)加密,则存储桶的 KMS 策略还必须授予此跨账户存取权限。有关在 Amazon S3 中配置跨账户存储桶权限的信息,请参阅《Amazon Simple Storage Service 用户指南》中的授予跨账户存储桶权限。如果跨账户权限未添加,则拥有 Amazon S3 存储桶的账户将无法访问会话输出日志。

有关指定存储会话日志的首选项的信息,请参阅 启用和禁用会话活动日志记录

要创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色(控制台),请执行以下步骤
  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

  3. 请选择 JSON 选项卡。

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

    { "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:::DOC-EXAMPLE-BUCKET/s3-bucket-prefix/*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] }
  5. 请选择下一步:标签

  6. (可选)通过选择 Add tag(添加标签)并输入策略的首选标签来添加标签。

  7. 选择 Next: Review(下一步: 审核)

  8. 查看策略页面上,对于名称,输入内联策略的名称,例如 SessionManagerPermissions

  9. (可选)对于 Description (描述),输入策略的描述。

  10. 选择 Create policy (创建策略)

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

  12. Create role(创建角色)页面上,选择 Amazon service( 服务),对于 Use case(使用案例),选择 EC2

  13. 选择 Next(下一步)。

  14. Add permissions(添加权限)页面上,选中刚刚创建的策略名称左侧的复选框,例如 SessionManagerPermissions

  15. 选择 Next(下一步)。

  16. Name, review, and create(名称、审核和创建)页面中,对于 Role name(角色名称),输入 IAM 角色的名称,例如 MySessionManagerRole

  17. (可选)对于 Role description(角色描述),输入角色的描述。

  18. (可选)通过选择 Add tag(添加标签)并输入角色的首选标签来添加标签。

  19. 选择 Create role(创建角色)。