配置正确IAM策略后用户仍无法启停指定实例或通过SSM访问实例
问题排查建议
一、IAM权限相关排查
- 检查是否存在权限边界或者**SCP(服务控制策略)**限制:Policy Simulator默认不会模拟组织层面的SCP、用户/角色附加的权限边界的拦截逻辑,需要单独确认所属AWS组织的SCP没有屏蔽EC2启停、SSM相关操作,同时对应用户没有附加限制对应操作的权限边界。
- 确认Policy Simulator模拟时使用的区域、资源ARN和实际操作的区域、实例完全一致,避免模拟环境和实际操作环境不匹配的问题。
- 检查策略的资源匹配规则:确认策略中指定的实例ARN格式完全正确,没有多写/漏写区域、账号ID、实例ID前缀;如果是用标签匹配,确认策略中的标签键、值完全匹配实例上的标签,大小写敏感。
- 确认用户的登录上下文是否真的携带MFA校验信息:有些第三方SSO登录、或者控制台登录后长时间未操作重新续期的会话,可能会丢失MFA标识,可以通过STS的
get-caller-identity命令结合--query 'Arn'检查返回值中是否包含mfa相关字段,或者执行aws sts get-session-token校验当前会话的MFA状态。
二、EC2实例SSM配置相关排查
- 确认实例已正确安装SSM Agent:Amazon Linux 2/2023默认预装,其他操作系统需要手动安装,且Agent版本不能低于2.3.274.0,检查实例内SSM Agent服务状态是否为运行中。
- 确认实例附加的**实例配置文件(Instance Profile)**包含SSM所需的基础权限:至少需要
AmazonSSMManagedInstanceCore托管策略的权限,这个是实例本身和SSM服务通信的必要权限,和IAM用户的权限无关。 - 检查实例的标签配置:确认实例上附加的标签和IAM策略中用于筛选的标签完全一致,没有拼写错误、多余空格、大小写不符的问题。
三、网络连通性排查
- 确认实例所在子网的路由表可以访问SSM服务端点:如果是公网实例需要有公网IP、路由表指向互联网网关;如果是私有子网需要配置SSM、EC2 Messages、SSM Messages三个接口类型的VPC端点,且端点的安全组允许来自实例私有IP的443入站流量。
- 检查实例的安全组出向规则:允许到SSM服务对应网段/端点的443出向流量,没有被拦截。
四、EC2启停操作单独排查
- 确认实例没有被设置停止保护、终止保护:这些实例层面的配置会导致即便是有权限的用户也无法执行启停操作,需要到实例详情页的设置项中确认。
- 确认实例所处的状态正常:如果实例处于挂起、故障、正在修改配置的中间状态,暂时无法响应启停请求。
内容的提问来源于stack exchange,提问作者al__101__
相关产品推荐
相关产品推荐

