元数据地址是什么
云平台通过一个链路本地地址向实例内部发布元数据,其中包含实例 ID、网络配置、启动脚本以及最关键的临时访问凭据。AWS、Azure、GCP 等主流平台使用 169.254.169.254,阿里云则使用 100.100.100.200。这个地址在实例内部无需认证即可访问,历史上多次成为 SSRF 漏洞的攻击目标,因此厂商后来引入了需要先获取会话令牌的访问方式。
基本信息
| 通用地址 | 169.254.169.254,AWS、Azure、GCP 等平台使用 |
|---|---|
| 阿里云地址 | 100.100.100.200 |
| 可获取内容 | 实例 ID、临时凭据、网络配置、user-data 启动脚本 |
| 访问方式 | 实例内部免认证直接请求,因此被 SSRF 攻击重点关注 |
| 加固措施 | 启用会话令牌模式,禁用旧的无令牌访问方式 |
| 风险等级 | 一旦泄露凭据,攻击者可直接调用云 API 操作资源 |
查询示例(令牌方式)
查询示例(令牌方式)
TOKEN=$(curl -sX PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 60')
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/instance-id
# 令牌有时效,脚本中不要长期缓存,按需获取即可平台对照
| 平台 | 元数据地址 | 说明 |
|---|---|---|
| AWS | 169.254.169.254 | 支持 IMDSv1 与 IMDSv2,建议仅启用后者 |
| Azure | 169.254.169.254 | 需在请求头中声明元数据访问意图 |
| GCP | 169.254.169.254 | 通过同一地址获取实例属性与令牌 |
| 阿里云 | 100.100.100.200 | 地址独立,需单独配置出站策略 |
典型使用场景
- 应用启动时读取自身实例 ID 与区域信息,用于上报监控标签与日志采集配置
- 通过元数据获取临时凭据调用云 API,替代在镜像里硬编码长期密钥
- 云初始化脚本读取 user-data 完成首次启动的配置下发
- 安全审计核对哪些实例仍在使用无令牌的旧访问方式,逐个切换
- 排障时确认元数据读取失败的原因:多数是出站策略或代理把该地址拦掉了
SSRF 漏洞叠加免认证元数据访问等于云凭据泄露。生产环境应关闭旧版无令牌访问方式,并对访问元数据地址的出站流量做白名单限制。