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

通过 SSM 代理限制对根级别命令的访问

SSM 代理在使用根权限 (Linux) 或系统权限 (Windows) 的 Amazon EC2 实例上运行。由于存在最高级别的系统访问权限,已被授予向 SSM 代理发送命令的权限的任何可信实例都具有根或系统权限。(在 AWS 中,可以在 AWS 中执行操作并访问资源的可信实例称为委托人。委托人可以是 AWS 账户根用户、IAM 用户或角色。

此访问级别对于委托人向 SSM 代理发送授权的 Systems Manager 命令是必需的,但也使委托人可以通过利用 SSM 代理中的任何潜在漏洞来运行恶意代码。

特别是,应小心地限制运行命令 SendCommandStartSession 的权限。第一步应为每个命令授予仅选择组织中的委托人的权限。但是,建议通过限制委托人可在其上运行这些命令的实例进一步改善安全状况。可以在分配给委托人的 IAM 用户策略中执行此操作。在 IAM 策略中,您可以包括一个条件,该条件将用户限制为仅在使用特定 Amazon EC2 标签或 EC2 标签的组合进行标记的实例上运行命令。

例如,假设您有两队实例,一个用于测试,一个用于生产。在应用于初级工程师的 IAM 策略中,您可以指定他们只能在使用 ssm:resourceTag/testServer 标记的实例上运行命令。但对于少量的应有权访问所有实例的首席工程师,您可授予使用 ssm:resourceTag/testServerssm:resourceTag/productionServer 标记的实例的访问权限。

使用此方法,如果初级工程师尝试在生产实例上运行命令,则会被拒绝访问,因为其分配的 IAM 策略不提供对使用 ssm:resourceTag/productionServer 标记的实例的显式访问权限。

有关更多信息及示例,请参阅以下主题: