AWS Systems Manager托管EC2实例不显示及批量策略配置咨询
问题分析与解决方案
一、新EC2实例无法在SSM控制台显示的排查与修复
你采用Default Host Management Configuration(DHMC)模式,该模式确实无需给实例附加IAM角色,但新实例无法被SSM识别,核心问题不在你修改的管理端IAM策略,而是DHMC的实例注册逻辑和前提条件:
1. 检查DHMC覆盖范围
DHMC默认自动管理符合以下条件的实例:
- 实例处于DHMC配置的目标区域内
- 实例属于DHMC关联的AWS账户
- 实例满足网络连通性要求:
- 可通过公网或VPC端点访问SSM服务
- 实例安全组允许HTTPS(443端口)出站访问SSM服务
2. 验证SSM代理状态
即使使用DHMC,实例仍需安装并运行SSM Agent:
- 官方AMI(如Amazon Linux 2/2023、Ubuntu 16.04+)默认预装Agent,可通过以下命令检查运行状态:
sudo systemctl status amazon-ssm-agent - 自定义AMI需手动安装SSM Agent
3. 澄清IAM策略的作用误区
你修改的是管理端的IAM用户/角色权限策略,仅控制你能操作哪些实例,但实例能否出现在SSM控制台,取决于实例是否成功注册到SSM服务——这和DHMC配置、实例网络/代理状态直接相关,和策略里的实例ARN列表无关。添加实例ARN只是让你获得操作权限,无法解决实例未注册的问题。
二、批量管理动态实例的IAM策略配置
要避免逐个添加实例ARN,可通过通配符或条件匹配实现批量覆盖:
1. 简化实例资源的策略写法
将第一个Statement中的实例ARN改为通配符,匹配当前账户下所有EC2实例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:region:YOUR_ACCOUNT_ID:instance/*", "arn:aws:ssm:region:YOUR_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", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:YOUR_ACCOUNT_ID:key/YOUR_KEY_ID" } ] }
注意:
- 替换
region、YOUR_ACCOUNT_ID、YOUR_KEY_ID为实际值 - 如需更精细控制(仅管理带特定标签的实例),可添加Condition条件:
仅带"Condition": { "StringEquals": { "ec2:ResourceTag/SSM-Managed": "true" } }SSM-Managed=true标签的实例会被允许操作。
2. 配合DHMC自动注册
确保DHMC配置为自动管理新实例:
- 进入SSM控制台 → 主机管理配置 → 编辑默认配置
- 开启“自动注册新实例”选项
- 配置覆盖的区域和目标账户(多账户场景)
三、额外排查步骤
若以上操作后新实例仍不显示:
- 检查实例元数据服务(IMDS):实例内执行
curl http://169.254.169.254/latest/meta-data/instance-id,验证能否返回实例ID - 查看SSM Agent日志:
/var/log/amazon/ssm/amazon-ssm-agent.log,排查注册失败的具体错误 - 验证VPC端点配置(私有网络场景):确保已创建SSM、EC2 Messages、SSM Messages的VPC端点,且实例安全组允许访问这些端点
内容的提问来源于stack exchange,提问作者user22039440
相关产品推荐
相关产品推荐

