AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 AWS Systems Manager 使用基于身份的策略(IAM 策略)

下面基于身份的策略示例说明账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对 Systems Manager 资源执行操作的权限。

重要

我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 Systems Manager 资源访问的基本概念和选项。有关更多信息,请参阅 管理您的 AWS Systems Manager 资源的访问权限概述

下面是一个权限策略示例,它允许用户删除 us-west-2 区域中名称以 MyDocument- 开头的文档。

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:DeleteDocument" ], "Resource" : [ "arn:aws:ssm:us-west-2:123456789012:document/MyDocument-*" ] } ] }

使用 AWS Systems Manager 控制台所需要的权限

要使用 AWS Systems Manager 控制台,用户必须拥有一组最低权限,这些权限允许用户描述其 AWS 账户的其他 AWS 资源。要充分使用 Systems Manager 控制台中的 Systems Manager,您必须拥有来自以下服务的权限:

  • AWS Systems Manager

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • AWS Identity and Access Management (IAM)

可以使用以下策略语句授予所需权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:*", "ec2:describeInstances", "iam:PassRole", "iam:ListRoles" ], "Resource": "*" } ] }

如果创建比必需的最低权限更为严格的 IAM 策略,对于附加该 IAM 策略的用户,控制台将无法按预期正常运行。为确保这些用户可使用 Systems Manager 控制台,请同时向用户附加 AmazonSSMReadOnlyAccess 托管策略,如适用于 AWS Systems Manager 的 AWS 托管策略中所述。

对于只需要调用 AWS CLI 或 Systems Manager API 的用户,您无需为其提供最低控制台权限。

适用于 AWS Systems Manager 的 AWS 托管策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决许多常见使用情形的需要。这些 AWS 托管策略 授予常见使用情形的必要权限,这样您不必调查需要哪些权限。(您还可以创建自己的自定义 IAM 策略,以授予 Systems Manager 操作和资源的权限。) 有关更多信息,请参阅 IAM User Guide 中的 AWS 托管策略

以下 AWS 托管策略(您可以将它们附加到自己账户中的用户)是特定于 AWS Systems Manager 的:

  • AmazonSSMFullAccess – 授予 Systems Manager API 和文档完全访问权限的用户信任策略。

  • AmazonSSMReadOnlyAccess – 授予 Systems Manager 只读 API 操作(例如 Get*List*)访问权限的用户信任策略。

  • AmazonSSMAutomationApproverAccess – 允许访问以查看自动化执行并将审批决定发送到等待审批的自动化的用户信任策略。

  • AmazonSSMAutomationRole – 该服务角色策略为 AWS Systems Manager 自动化服务提供权限以运行在自动化文档中定义的活动。将此策略分配给管理员和可信高级用户。

  • AmazonSSMMaintenanceWindowRole – Systems Manager 维护时段 的服务角色策略。

  • AmazonSSMDirectoryServiceAccess – 允许 SSM 代理 代表用户访问 AWS Directory Service 以处理托管实例加入域的请求的实例信任策略。

  • AmazonSSMManagedInstanceCore – 允许实例使用 AWS Systems Manager 服务核心功能的实例信任策略。

  • AmazonSSMServiceRolePolicy – 提供 AWS Systems Manager 管理或使用的 AWS 资源的访问权限的服务角色策略。

  • AWSResourceAccessManagerServiceRolePolicy – 包含账户的 AWS Organizations 结构的只读 AWS Resource Access Manager 访问权限的服务角色策略。它还包含自行删除角色的 IAM 权限。

  • AmazonEC2RoleforSSM – 此策略很快将被弃用。在相应的位置,使用 AmazonSSMManagedInstanceCore 策略在 Amazon EC2 实例上启用 AWS Systems Manager 服务的核心功能。有关信息,请参阅为 Systems Manager 创建 IAM 实例配置文件

注意

在混合环境中,您需要一个额外的 IAM 角色,以允许服务器和虚拟机与 Systems Manager 服务进行通信。这就是 Systems Manager 的 IAM 服务角色。该角色向 AWS Security Token Service (AWS STS) AssumeRole 授予对 Systems Manager 服务的信任。AssumeRole 操作返回一组临时安全凭证 (由访问密钥 ID、秘密访问密钥和安全令牌组成)。您使用这些临时凭证访问通常可能无法访问的 AWS 资源。有关更多信息,请参阅 AWS Security Token Service API Reference 中的为混合环境创建 IAM 服务角色AssumeRole

客户托管策略示例

您可以创建在自己的 AWS 账户中管理的独立策略。我们将它们称作客户托管策略。您可以将这些策略附加到 AWS 账户中的多个委托人实体。将策略附加到委托人实体时,便向实体授予了策略中定义的权限。有关更多信息,请参阅 IAM User Guide 中的客户托管策略

以下用户策略示例授予执行各种 AWS Systems Manager 操作的权限。可以使用它们限制 IAM 用户和角色的 Systems Manager 访问权限。在 Systems Manager API、AWS 开发工具包或 AWS CLI 中执行操作时,这些策略将会发挥作用。对于使用控制台的用户,需要授予特定于控制台的其他权限。有关更多信息,请参阅 使用 AWS Systems Manager 控制台所需要的权限

注意

所有示例都使用US West (Oregon) Region (us-west-2) 和虚构的账户 ID。

示例

示例 1:允许用户在单个区域中执行 Systems Manager 操作

以下示例授予仅在 us-west-2 区域执行 AWS Systems Manager 操作的权限:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:*" ], "Resource" : [ "arn:aws::aws:ssm:us-west-2:111222333444:*" ] } ] }

示例 2:允许用户列出某个区域的文档

以下示例授予列出 us-west-2 区域中所有以 Update 开头的文档名称的权限:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:ListDocuments" ], "Resource" : [ "arn:aws:ssm:us-west-2:111222333444:document/Update*" ] } ] }

示例 3:允许用户使用特定 SSM 文档在特定实例上运行命令

以下示例 IAM 策略允许用户执行以下操作。

  • 列出 Systems Manager 文档和文档版本。

  • 查看有关文档的详细信息。

  • 使用策略中指定的文档发送命令。文档名称由此条目确定:

    arn:aws-cn:ssm:us-west-2:*:document/SSM-document-name
  • 发送命令到三个实例。实例由第二个 Resource 部分中的以下条目确定:

    "arn:aws-cn:ec2:us-west-2:*:instance/i-02573cafcfEXAMPLE", "arn:aws-cn:ec2:us-west-2:*:instance/i-0471e04240EXAMPLE", "arn:aws-cn:ec2:us-west-2:*:instance/i-07782c72faEXAMPLE"
  • 发送命令后查看有关命令的详细信息。

  • 启动和停止 Automation 执行。

  • 获取有关 Automation 执行的信息。

如果您要授予用户权限以使用本文档向该用户目前有权访问 (取决于其 AWS 用户账户) 的任何实例发送命令,您可以在 Resource 部分指定以下条目并删除其他实例条目。

"arn:aws-cn:ec2:us-west-2:*:instance/*"

请注意,Resource 部分包含一个 Amazon S3 ARN 条目:

arn:aws-cn:s3:::S3-bucket-name

您还可为此条目设置格式,如下所示:

arn:aws-cn:s3:::S3-bucket-name/* -or- arn:aws-cn:s3:::S3-bucket-name/S3-prefix-name
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:ListDocuments", "ssm:ListDocumentsVersions", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeInstanceInformation", "ssm:DescribeDocumentParameters", "ssm:DescribeInstanceProperties" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws-cn:ec2:us-west-2:*:instance/i-02573cafcfEXAMPLE", "arn:aws-cn:ec2:us-west-2:*:instance/i-0471e04240EXAMPLE", "arn:aws-cn:ec2:us-west-2:*:instance/i-07782c72faEXAMPLE", "arn:aws-cn:s3:::bucket_name", "arn:aws-cn:ssm:us-west-2:*:document/SSM-document-name" ] }, { "Action": [ "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:DescribeInstanceStatus", "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:StartAutomationExecution", "Effect": "Allow", "Resource": [ "arn:aws:ssm:::automation-definition/" ] }, { "Action": "ssm:DescribeAutomationExecutions ", "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:StopAutomationExecution", "ssm:GetAutomationExecution" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:::automation-execution/" ] } ] }