云主机元数据(metadata)包含云主机的部分基础信息等。您可以基于云主机元数据,在云主机内部配置或管理正在运行的实例。
限制与前提
1.资源池限制:目前仅支持华北-北京3,可用区一及可用区二。其他资源池后续逐步上线。
2.虽然只能从云主机内部访问实例元数据,但数据并未被加密保护。建议您采取适当的预防措施来保护敏感数据,如限制访问范围、加密等。
- Windows操作系统,建议您在PowerShell中执行如下命令,阻止非管理员用户访问实例元数据。
PS C:\>$RejectPrincipal = New-Object -TypeName System.Security.Principal.NTAccount ("Everyone")
PS C:\>$RejectPrincipalSID = $RejectPrincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value
PS C:\>$ExceptPrincipal = New-Object -TypeName System.Security.Principal.NTAccount ("Administrator")
PS C:\>$ExceptPrincipalSID = $ExceptPrincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value
PS C:\>$PrincipalSDDL = "O:LSD:(D;;CC;;;$ExceptPrincipalSID)(A;;CC;;;$RejectPrincipalSID)"
PS C:\>New-NetFirewallRule -DisplayName "Reject metadata service for $($RejectPrincipal.Value), exception: $($ExceptPrincipal.Value)" -Action block -Direction out -Protocol TCP -RemoteAddress 169.254.169.254 -LocalUser $PrincipalSDDL
- Linux操作系统,建议您以root用户权限执行如下命令,阻止非root用户访问实例元数据
iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner root --jump REJECT云主机默认元数据
| 元数据项 | 元数据说明 |
|
/openstack/latest/meta_data.json |
查询元数据信息 说明
如实例ID(uuid)、主机名称(hostname)等
|
|
/openstack/latest/user_data /latest/user-data |
查询自定义数据 |
|
/openstack/latest/network_data.json |
查询网络信息 |
|
/latest/meta-data/hostname |
查询操作系统内部主机名称 |
|
/latest/meta-data/local-ipv4 |
查询IP地址 说明
多网卡场景,只显示默认网卡地址
|
|
/latest/meta-data/public-keys/0/openssh-key
|
查询公钥 说明
需实例已绑定密钥对
|
|
/latest/meta-data/security-groups |
查询安全组名称 说明
多网卡场景,只显示默认网卡绑定的安全组
|
元数据的使用
查看默认元数据
URI
/169.254.169.254/{元数据项}
以查询云主机操作系统内部主机名称为例:
- 通过【远程登录】等方式进入云主机实例内部
- 执行如下命令查询云主机默认元数据
- Linux操作系统:以使用CURL工具为例
curl http://169.254.169.254/latest/meta-data/hostname
- Windows操作系统:以使用CURL工具为例
curl.exe --http0.9 --output - http://169.254.169.254/latest/meta-data/hostname