(快速入门)IAM 默认 Session Manager 策略 - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

(快速入门)IAM 默认 Session Manager 策略

使用此部分中的示例可帮助您创建提供 AWS Identity and Access Management 访问所需的最常权限的 IAM (Session Manager) 策略。

注意

您还可以使用 AWS Key Management Service (AWS KMS) 密钥策略来控制向哪些 IAM 用户IAM、角色和AWS账户授予对 客户主密钥 (CMK) 的访问权限。有关信息,请参阅 中的管理对 AWS KMS 资源的访问概述和使用 AWS KMS AWS Key Management Service Developer Guide 中的密钥策略。

的快速入门最终用户策略Session Manager

使用以下示例为 IAM 创建 Session Manager. 最终用户策略。

您可以创建一个策略,以允许用户仅从 Session Manager 控制台和 AWS Command Line Interface (AWS CLI)、仅从 Amazon Elastic Compute Cloud (Amazon EC2) 控制台或从这三种控制台启动会话。

这些策略为最终用户提供启动特定实例的会话以及仅结束自己的会话的功能。有关可能需要对策略进行的自定义的示例,请参阅 IAM 的其他示例 Session Manager 策略

注意

在以下所有示例策略中,替换 instance-id 替换为您要向其授予访问权限的实例的 ID,格式为 i-02573cafcfEXAMPLE。 替换 regionaccount-id 替换为您的AWS区域和 AWS 账户 ID,例如 us-east-2111122223333

从以下选项卡中进行选择,查看要提供的会话访问范围的示例策略。

Session Manager and CLI

使用该示例策略可向用户提供仅从 Session Manager 控制台和 AWS CLI. 启动会话的功能。该策略不提供从 Amazon EC2 控制台启动会话所需的所有权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:region:987654321098:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" } ] }
Amazon EC2

使用该示例策略可向用户提供仅从 Amazon EC2 控制台启动会话的功能。该策略不提供从 Session Manager 控制台和 AWS CLI. 启动会话所需的所有权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:region:987654321098:instance/i-02573cafcfEXAMPLE" ] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Session Manager, CLI, and Amazon EC2

使用该示例策略可向用户提供从 Session Manager 控制台、AWS CLI 和 Amazon EC2 控制台启动会话的功能。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:region:987654321098:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" } ] }

1 SSM-SessionManagerRunShell 是 SSM 创建的用于存储会话配置首选项的 Session Manager 文档的默认名称。您可以改为创建自定义会话文档,并在此策略中指定它。您还可以AWS为使用 SSH 启动会话的用户指定 AWS-StartSSHSession提供的文档。有关使用 SSH 支持会话所需的配置步骤的信息(可选)通过 Session Manager 启用 SSH 连接,请参阅

2 如果将条件元素 ssm:SessionDocumentAccessCheck 指定为 true,则系统会在建立会话之前检查用户是否具有对定义的会话文档(在本例中为 SSM-SessionManagerRunShell)的显式访问权限。有关更多信息,请参阅对 强制实施会话文档权限检查AWS CLI.

3kms:GenerateDataKey 权限可让您创建用于加密会话数据的数据加密密钥。如果您为会话数据使用 AWS Key Management Service (AWS KMS) 加密,请替换 key-name 替换为要使用的客户主密钥 (CMK) 的 Amazon 资源名称 (ARN),格式为 arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE。 如果您不对会话数据使用 AWS KMS 密钥加密,请从策略中删除以下内容。

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

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

4 如果用户尝试从 SendCommand 控制台启动会话,但必须发送命令以首先更新 Amazon EC2,则需要 SSM 代理 的权限。

(快速入门) 管理员策略Session Manager

使用以下示例可为 IAM 创建 Session Manager. 管理员策略。

这些策略为管理员提供启动标记为 的实例的会话的功能Key=Finance,Value=WebServers,创建、更新和删除首选项的权限,以及仅结束自己的会话的权限。有关可能需要对策略进行的自定义的示例,请参阅 IAM 的其他示例 Session Manager 策略

可以创建一个策略,允许管理员仅从 Session Manager 控制台和 AWS CLI、仅从 Amazon EC2 控制台或从这三项中执行这些任务。

注意

Replace regionaccount-id 替换为您的AWS区域和 AWS 账户 ID,例如 us-east-2111122223333

从以下选项卡中进行选择,查看要支持的访问方案的示例策略。

Session Manager and CLI

使用该示例策略可向管理员提供仅从 Session Manager 控制台和 AWS CLI. 执行会话相关任务的功能。该策略不提供从 Amazon EC2 控制台执行会话相关任务所需的所有权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-west-2:987654321098:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Amazon EC2

使用此示例策略可向管理员提供仅从 Amazon EC2 控制台执行会话相关任务的功能。该策略不提供从 Session Manager 控制台和 AWS CLI. 执行会话相关任务所需的所有权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-west-2:987654321098:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Session Manager, CLI, and Amazon EC2

使用该示例策略可向管理员提供从 Session Manager 控制台、AWS CLI 和 Amazon EC2 控制台执行会话相关任务的功能。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-west-2:987654321098:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

1 如果用户尝试从 SendCommand 控制台启动会话,但必须发送命令以首先更新 Amazon EC2,则需要 SSM 代理 的权限。