AWS私有子网SUSE EC2实例启动时安装SSM Agent与配置角色咨询
私有子网SLES实例SSM Agent部署配置指南
故障根因
你当前使用的引导脚本默认从公网S3地址拉取SSM Agent安装包,你的环境无NAT网关、无弹性公网IP,所有实例都在纯私有子网中,无法访问公网资源,因此安装包下载失败,后续安装启动流程不生效。
前置依赖配置(必须完成)
- 为实例所在VPC创建3个接口型VPC端点,分别对应:
com.amazonaws.<你的AWS区域>.ssmcom.amazonaws.<你的AWS区域>.ec2messagescom.amazonaws.<你的AWS区域>.ssmmessages
三个端点均关联私有子网所在的路由表,安全组开放入方向443端口允许实例所在CIDR访问。
- 为实例所在VPC创建网关型S3 VPC端点,关联私有子网路由表,端点权限策略开放对
amazon-ssm-<你的AWS区域>存储桶的读取权限。 - 实例关联的安全组开放出方向443端口,允许访问上述VPC端点。
- 确认你创建的SSM IAM角色已经正确附加到EC2实例上,角色权限包含
AmazonEC2RoleforSSM托管策略,以及S3存储桶amazon-ssm-<你的AWS区域>的读取权限。
调整后的启动引导脚本(用户数据)
#!/bin/bash # 输出安装日志到指定路径方便排查 exec > >(tee /var/log/ssm-install.log) 2>&1 mkdir -p /tmp/ssm cd /tmp/ssm # 替换<你的AWS区域>为实际使用的区域,例ca-central-1 AWS_REGION="<你的AWS区域>" rpm -q amazon-ssm-agent if [ $? -ne 0 ]; then curl -v -O "https://s3.${AWS_REGION}.amazonaws.com/amazon-ssm-${AWS_REGION}/latest/linux_amd64/amazon-ssm-agent.rpm" if [ -f amazon-ssm-agent.rpm ]; then rpm --install amazon-ssm-agent.rpm systemctl enable amazon-ssm-agent systemctl start amazon-ssm-agent systemctl status amazon-ssm-agent else echo "SSM Agent安装包拉取失败,请检查S3 VPC端点配置" exit 1 fi fi
补充优化方案
如果需要更高的部署稳定性,可以提前将SSM Agent安装包导入自定义SLES镜像,启动引导脚本跳过下载步骤,直接执行安装启动操作即可。
验证方式
实例启动5分钟后,登录AWS Systems Manager控制台,在「托管式节点」列表中查看对应实例是否存在,实例出现在列表中即表示SSM Agent配置成功,可直接通过会话管理器连接实例。
内容的提问来源于stack exchange,提问作者Arunava
相关产品推荐
相关产品推荐

