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

Session Manager 的其他示例 IAM 策略

请参阅以下示例策略,以帮助您为要支持的任何 Session Manager 用户访问场景创建自定义 IAM 策略。

示例 1:限制对特定实例的访问权限

您可以通过创建包含实例 ID 的 IAM 用户策略来限制对特定实例的访问。在以下示例中,仅允许用户对三个特定实例进行 Session Manager 访问,并且仅允许用户在这些实例上终止自己的会话。如果用户向任何其他实例发送命令或尝试终止任何其他会话,则命令结果将包括 AccessDenied

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

示例 2:基于实例标签限制访问

您可以根据特定的 Amazon EC2 标签限制对实例的访问。在以下示例中,允许用户在任何实例 (Resource: arn:aws:ec2:*:*:instance/*) 上启动会话 Effect: Allow, Action: ssm:StartSession),条件是实例为 Finance WebServer (ssm:resourceTag/Finance: WebServer)。如果用户向未设置标签或具有除 Finance: WebServer 以外的任意标签的实例发送命令,则命令结果将包括 AccessDenied

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

您可以创建 IAM 策略来允许用户启动到使用多个标签进行标记的实例的会话。以下策略允许用户启动到应用了指定标签的实例的会话。如果用户向未使用这两个标签标记的实例发送命令,则命令结果将包括 AccessDenied

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ], "ssm:resourceTag/tag_key2":[ "tag_value2" ] } } } ] }

有关创建 IAM 用户策略的更多信息,请参阅 IAM User Guide 中的托管策略与内联策略。有关标记实例的更多信息,请参阅 Amazon EC2 User Guide for Linux Instances 中的标记您的 Amazon EC2 资源(内容适用于 Windows 和 Linux 实例)。有关在实例上提高针对未授权根级别命令的防御安全性的更多信息,请参阅通过 SSM 代理限制对根级别命令的访问

示例 3:仅允许用户终止自己启动的会话

以下 IAM 策略允许用户查看账户中所有会话的 ID,但仅允许其通过自己启动的会话与实例进行交互。分配了以下策略的用户无法连接或终止其他用户的会话。此策略使用变量 {aws:username} 来实现这一目的。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

示例 4:允许对所有会话进行完全(管理)访问

以下 IAM 策略允许用户与所有实例以及所有用户为所有实例创建的所有会话进行不受限制的交互。只应将其授予需要完全控制组织的 Session Manager 活动的管理员。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }