首页/安全/漏洞与攻击面速查/云元数据地址 169.254.169.254 的风险控制
Web 漏洞原理与防护55 条

云元数据地址 169.254.169.254 的风险控制

云主机元数据服务在 169.254.169.254 提供实例信息与临时凭据,历史上多次成为 SSRF 的涉猎目标;应优先启用需要令牌的元数据访问机制,并收紧实例网络出口。

漏洞与攻击面速查安全更新于 2026-10-13

云元数据地址风险是什么

云主机元数据服务在链路本地地址 169.254.169.254 提供实例信息与临时凭据,无需认证即可从实例内部访问。它本身是设计的一部分,问题在于一旦应用存在服务端请求伪造(SSRF),攻击者就能借应用的网络能力读取元数据,直接拿到具有云 API 权限的临时凭据。历史上多起云上入侵事件都以这一步为跳板,因此它同时是应用层漏洞问题与云侧配置问题。

基本信息

地址169.254.169.254(链路本地地址,仅实例内可达)
提供内容实例元数据、用户数据、临时安全凭据
主要演进AWS 推出需会话令牌的 IMDSv2,替代可直接读取的 IMDSv1
风险组合应用存在 SSRF + 元数据无需令牌 + 实例角色权限过大

典型使用场景

  • 云主机上线时统一强制使用需要令牌的元数据访问方式
  • 代码评审时检查发起外部请求的功能是否存在地址校验缺陷
  • 收敛实例角色权限:按业务实际需要授予,而非沿用宽泛策略
  • 在容器网络策略中阻断业务 Pod 对元数据地址的访问
  • 怀疑命中后按凭据泄露流程处置:轮换密钥并审计云 API 调用记录

防护动作清单

防护动作清单
1. 启用需会话令牌的元数据访问(如 AWS IMDSv2)
2. 网络策略:业务容器与进程禁止直连 169.254.169.254
3. 最小化实例角色权限,限制临时凭据能做什么
4. 应用层 SSRF 修复同步推进:地址白名单、禁止跟随重定向
5. 出站代理统一出口,元数据地址不经过代理
6. 审计云 API 调用记录,异常来源立即排查

强制 IMDSv2 示例(AWS CLI)

强制 IMDSv2 示例(AWS CLI)
# 要求所有元数据请求先获取会话令牌
aws ec2 modify-instance-metadata-options \
  --instance-id i-xxxxxxxx \
  --http-tokens required \
  --http-endpoint enabled
# 批量核查存量实例当前的元数据配置
# aws ec2 describe-instances --query \
#   'Reservations[].Instances[].[InstanceId,MetadataOptions.HttpTokens]'

控制层次

层次措施局限
云平台侧强制令牌访问、限制跳数仅覆盖该平台,多平台需逐一配置
网络侧阻断到 169.254.169.254 的出站内网横向时可能被其他路径绕过
权限侧最小化实例角色权限不阻止读取,只限制凭据能力
应用侧修复 SSRF,校验目标地址需要长期维护白名单
元数据凭据短期有效但仍可被滥用:确认疑似命中后,按凭据泄露流程轮换并审计调用记录,不要只关闭入口了事。
只堵应用层出口、不管实例角色权限,凭据一旦泄露风险面依然很大:真正决定损失上限的是角色被授予了多少权限。

易错点

  • 只堵应用层出口、未收敛实例角色权限:凭据泄露后仍可调用大量云 API
  • 沿用无需令牌的旧版元数据访问:SSRF 一步即可读取临时凭据
  • 只在单一云平台做了加固:多平台环境下其他云上的实例仍是默认配置
  • 把元数据当成内部可信服务,未在出站策略中隔离,容器内可随意访问

数据来源与参考

  • AWS EC2 用户指南(Instance metadata and user data)
  • 阿里云 ECS 元数据服务文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌