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

针对默认 CLI 场景强制文档权限检查

当您将 Session Manager 配置用于您的账户时,系统会创建一个名为 SSM-SessionManagerRunShell 的 SSM 文档。此 SSM 文档存储您对会话数据是保存在 Amazon S3 存储桶还是 Amazon CloudWatch Logs 日志组中、会话数据是否使用 AWS Key Management Service 进行加密以及是否为会话启用“运行身份”支持的要求。例如:

{ "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "MyBucketName", "s3KeyPrefix": "MyBucketPrefix", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "MyLogGroupName", "cloudWatchEncryptionEnabled": true, "kmsKeyId": "MyKMSKeyID", "runAsEnabled": true, "runAsDefaultUser": "MyDefaultRunAsUser" } }

默认情况下,如果您账户中的用户已在其 IAM 用户策略中被授予启动会话的权限,则该用户可以访问此 SSM 文档。这意味着,当他们使用 AWS CLI 运行 start-session 命令但没有指定配置文档时,系统将使用 SSM-SessionManagerRunShell 并启动完整的交互式 shell。即使用户的 IAM 策略未授予访问 SSM-SessionManagerRunShell 文档的显式权限,会话也会启动。

例如,以下命令不指定 Session Manager 配置文档。

aws ssm start-session --target i-02573cafcfEXAMPLE

以下示例的确指定默认的 Session Manager 配置文档。

aws ssm start-session --document-name SSM-SessionManagerRunShell --target i-02573cafcfEXAMPLE

对于用户未在 start-session CLI 命令中指定文档名称的情况,您可以确保已授予用户对此默认配置文档的显式访问权限。您可以通过将以下条件元素添加到控制用户对会话的访问权限的 IAM 策略来执行此操作:

"Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } }

如果在用户的关联 IAM 策略中将此条件元素设置为 true,则必须在 IAM 策略中授予对 SSM-SessionManagerRunShell 的显式访问权限。例如:

{ "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }

此条件元素仅适用于默认的 SSM-SessionManagerRunShell 配置文档,并且仅当用户未在 CLI start-session 命令中指定配置文档名称时才适用。换句话说,它确保用户在运行以下命令时被授予对 SSM-SessionManagerRunShell 的访问权限:

aws ssm start-session --target i-02573cafcfEXAMPLE

有关在用户的 IAM 策略中指定 Session Manager 配置文档的示例,请参阅(快速入门)Session Manager 最终用户策略

其他应用场景

使用默认的 SSM-SessionManagerRunShell 配置文档是可以从 start-session CLI 命令中省略文档名称的唯一情况。在其他情况下,必须指定文档名称,系统将检查是否已授予用户对其指定的配置文档的显式访问权限。

例如,如果用户指定您创建的自定义配置文档的名称,则用户的 IAM 策略必须授予他们访问该文档的权限。

如果用户运行命令以使用 SSH 启动会话,则用户的策略必须授予他们访问 AWS-StartSSHSession 配置文档的权限。

注意

为了使用 SSH 启动会话,必须同时在目标实例和用户的本地计算机上完成配置步骤。有关信息,请参阅 (可选)通过 Session Manager 启用 SSH 连接.