操作场景
弹性云服务器元数据包含了弹性云服务器在云平台的基本信息,例如云服务ID、主机名、网络信息等。弹性云服务器元数据支持两种风格,可以分别通过兼容Openstack和兼容EC2的API获取,如表1所示。对于支持的元数据类型,本节详细介绍了其URI和使用方法。

使用须知
如果元数据中包含了敏感数据,您应当采取适当的措施来保护敏感数据,比如限制访问范围、加密等。
防火墙配置示例如下所示:
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用户权限执行下面的命令,阻止非root用户访问自定义实例自定义数据:
iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner root --jump REJECT
弹性云服务器元数据类别支持列表
表1中不包含兼容EC2类型的ami-id、ami-launch-index、ami-manifest-path、block-device-mapping/、instance-action、instance-id、reservation-id、ramdisk-id、kernel-id元数据项,以上元数据项均无实际含义,不建议使用。
表1 弹性云服务器元数据类别支持列表
元数据类型
实例元数据项
约束说明
OpenStack类型
/meta_data.json
查询弹性云服务器的元数据信息。
元数据的关键字段请参见表2。
OpenStack类型
/password
查询弹性云服务器的密码。
Windows系统使用keypairs创建弹性云服务器初始化时cloudbase-init用于保存密文密码。
OpenStack类型
/user_data
查询弹性云服务器的自定义数据。
用户根据需要自行指定脚本和配置文件用于弹性云服务器初始化,详细操作请参考实例自定义数据注入。
若linux虚拟化使用密码方式,则保存注入密码的脚本。
OpenStack类型
/network_data.json
查询弹性云服务器的网络信息。
OpenStack类型
/securitykey
获取临时的AK、SK。
对弹性云服务器获取临时的AK、SK,需要在IAM上对op_svc_ecs账户授权,并对相应的弹性云服务器资源进行授权委托管理。
OpenStack类型
/spot/instance-action
查询竞价实例关机提示。
兼容EC2类型
/meta-data/hostname
查询弹性云服务器的主机名称。
请参考以下链接为弹性云服务器去掉后缀.novalocal:
弹性云服务器的主机名带后缀.novalocal
兼容EC2类型
/meta-data/local-hostname
该字段含义同hostname一致。
兼容EC2类型
/meta-data/public-hostname
该字段含义同hostname一致。
兼容EC2类型
/meta-data/instance-type
查询弹性云服务器的规格名称。
兼容EC2类型
/meta-data/local-ipv4
查询弹性云服务器的固定IP地址。
多网卡情况下,只显示主网卡的地址。
兼容EC2类型
/meta-data/placement/availability-zone
查询弹性云服务器的AZ信息。
兼容EC2类型
/meta-data/public-ipv4
查询弹性云服务器的弹性公网IP地址。
多网卡情况下,只显示主网卡的弹性公网IP地址。
兼容EC2类型
/meta-data/public-keys/0/openssh-key
查询弹性云服务器的公钥。
兼容EC2类型
/user-data
查询弹性云服务器的自定义数据。
兼容EC2类型
/meta-data/security-groups
查询弹性云服务器所使用的安全组名称。
表2 metadata关键字段
参数
参数类型
描述
uuid
String
弹性云服务器的ID。
availability_zone
String
弹性云服务器所在可用区。
meta
Dict
元数据信息,包括镜像名称、镜像ID、VPC ID等信息。
hostname
String
弹性云服务器主机名。
请参考以下链接为弹性云服务器去掉后缀.novalocal:
弹性云服务器的主机名带后缀.novalocal
enterprise_project_id
String
查询弹性云服务器的企业项目ID信息。
前提条件
已登录弹性云服务器。
请确保安全组出方向规则满足如下要求,否则访问元数据请求失败:
协议:TCP
端口范围:80
远端地址:169.254.0.0/16
说明:
如果您使用的是默认安全组出方向规则,则已经包括了如上要求,可以正常访问元数据。默认安全组出方向规则请参见默认安全组和规则。
Metadata(OpenStack元数据API)
用于查询弹性云服务器的元数据。
URI
/169.254.169.254/openstack/latest/meta_data.json
方法
支持GET请求。
示例:
Linux操作系统:以使用cURL工具为例,介绍查询弹性云服务器元数据的方法。
curl http://169.254.169.254/openstack/latest/meta_data.json
Windows操作系统:以使用Invoke-RestMethod工具为例,介绍查询弹性云服务器元数据的方法。
Invoke-RestMethod http://169.254.169.254/openstack/latest/meta_data.json | ConvertTo-Json
{
"random_seed": "rEocCViRS+dNwlYdGIxJHUp+00poeUsAdBFkbPbYQTmpNwpoEb43k9z+96TyrekNKS+iLYDdRNy4kKGoNPEVBCc05Hg1TcDblAPfJwgJS1okqEtlcofUhKmL3K0fto+5KXEDU3GNuGwyZXjdVb9HQWU+E1jztAJjjqsahnU+g/tawABTVySLBKlAT8fMGax1mTGgArucn/WzDcy19DGioKPE7F8ILtSQ4Ww3VClK5VYB/h0x+4r7IVHrPmYX/bi1Yhm3Dc4rRYNaTjdOV5gUOsbO3oAeQkmKwQ/NO0N8qw5Ya4l8ZUW4tMav4mOsRySOOB35v0bvaJc6p+50DTbWNeX5A2MLiEhTP3vsPrmvk4LRF7CLz2J2TGIM14OoVBw7LARwmv9cz532zHki/c8tlhRzLmOTXh/wL36zFW10DeuReUGmxth7IGNmRMQKV6+miI78jm/KMPpgAdK3vwYF/GcelOFJD2HghMUUCeMbwYnvijLTejuBpwhJMNiHA/NvlEsxJDxqBCoss/Jfe+yCmUFyxovJ+L8oNkTzkmtCNzw3Ra0hiKchGhqK3BIeToV/kVx5DdF081xrEA+qyoM6CVyfJtEoz1zlRRyoo9bJ65Eg6JJd8dj1UCVsDqRY1pIjgzE/Mzsw6AaaCVhaMJL7u7YMVdyKzA6z65Xtvujz0Vo=",
"uuid": "ca9e8b7c-f2be-4b6d-a639-f10b4d994d04",
"availability_zone": "lt-test-1c",
"enterprise_project_id" : "0",
"hostname": "ecs-ddd4.novalocal",
"launch_index": 0,
"instance_type": "s3.medium.2",
"meta": {
"metering.image_id": "3a64bd37-955e-40cd-ab9e-129db56bc05d",
"metering.imagetype": "gold",
"metering.resourcespeccode": "s3.medium.2.linux",
"admin_pass": "",
"metering.cloudServiceType": "hws.service.type.ec2",
"image_name": "CentOS 7.6 64bit",
"metering.resourcetype": "1",
"vpc_id": "3b6c201f-aeb3-4bce-b841-64756e66cb49",
"os_bit": "64",
"cascaded.instance_extrainfo": "pcibridge:1",
"os_type": "Linux",
"charging_mode": "0"
"__support_agent_list": "hss,ces"
},
"region_id": "xxx",
"project_id": "6e8b0c94265645f39c5abbe63c4113c6",
"name": "ecs-ddd4"
}
User data(OpenStack元数据API)
用于查询弹性云服务器的自定义数据。该值仅在创建弹性云服务器时指定,不支持修改。
URI
/169.254.169.254/openstack/latest/user_data
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/openstack/latest/user_data
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/openstack/latest/user_data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
说明:
如果创建弹性云服务器时未注入自定义数据,此时,该接口的查询结果是404,如图1所
Network data(OpenStack元数据API)
查询弹性云服务器的网络信息,支持查询云服务器挂载的全部网卡的信息,包括网卡所在子网的DNS地址、网络带宽、网卡ID、网卡私有IP地址、网卡弹性公网IP地址、网卡的MAC地址。
URI
/openstack/latest/network_data.json
方法
支持GET请求
示例
说明:
instance_max_bandwidth、instance_min_bandwidth的单位是Mbps,如果取值为-1,说明对带宽大小无限制。
Linux操作系统:
curl http://169.254.169.254/openstack/latest/network_data.json
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/openstack/latest/network_data.json | ConvertTo-Json
{
"services": [{
"type": "dns",
"address": "xxx.xx.x.x"
},
{
"type": "dns",
"address": "100.125.21.250"
}],
"qos":{
"instance_min_bandwidth": 100,
"instance_max_bandwidth": 500
},
"networks": [{
"network_id": "67dc10ce-441f-4592-9a80-cc709f6436e7",
"type": "ipv4_dhcp",
"link": "tap68a9272d-71",
"id": "network0"
}],
"links": [{
"vif_id": "68a9272d-7152-4ae7-a138-3ef53af669e7",
"public_ipv4": "100.100.xx.xx",
"ethernet_mac_address": "fa:16:3e:f7:c1:47",
"mtu": null,
"local_ipv4": "192.169.10.10",
"type": "cascading",
"id": "tap68a9272d-71"
}]
}
Security Key(OpenStack元数据API)
获取临时的AK、SK。
说明:
您如果需要在弹性云服务器获取临时的AK、SK,需要在IAM对弹性云服务器进行云服务委托授权,并在相应的弹性云服务器的详情页面“管理信息 > 委托”栏目中添加委托。
详细操作请参考委托其他云服务管理资源。
临时的AK、SK有效期24个小时。临时AK、SK更新时间早于失效时间6个小时,6个小时内新旧临时AK、SK均可用。
使用临时AK、SK时,需要在消息的header中增加'X-Security-Token':{securitytoken}。其中,securitytoken就是调用接口返回的值。
URI
/openstack/latest/securitykey
方法
支持GET请求
示例
Linux操作系统:
curl http://169.254.169.254/openstack/latest/securitykey
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/openstack/latest/securitykey
Instance Action(OpenStack元数据API)
用于查询竞价实例关机提示。
说明:
如果您的竞价实例即将被中断,该接口会返回预计关机的时间。
URI
/openstack/latest/spot/instance-action
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/openstack/latest/spot/instance-action
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/openstack/latest/spot/instance-action
{"action":"terminate","timestamp":"2023-06-01 09:15:00"}
User data(EC2-兼容的API)
用于查询弹性云服务器的自定义。该值仅在创建弹性云服务器时指定,不支持修改。
URI
/169.254.169.254/latest/user-data
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/user-data
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/user-data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Hostname(EC2-兼容的API)
用于查询弹性云服务器的主机名称,后面会追加.novalocal后缀。
URI
/169.254.169.254/latest/meta-data/hostname
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/hostname
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/hostname
vm-test.novalocal
Instance Type(EC2-兼容的API)
用于查询弹性云服务器的规格名称。
URI
/169.254.169.254/latest/meta-data/instance-type
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/instance-type
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/instance-type
s3.medium.2
Local IPv4(EC2-兼容的API)
用于查询弹性云服务器的固定IP地址。多网卡情况下,只显示主网卡的地址。
URI
/169.254.169.254/latest/meta-data/local-ipv4
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/local-ipv4
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
192.1.1.2
Availability Zone(EC2-兼容的API)
用于查询弹性云服务器的AZ信息。
URI
/169.254.169.254/latest/meta-data/placement/availability-zone
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/placement/availability-zone
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/placement/availability-zone
az1.dc1
Public IPv4(EC2-兼容的API)
用于查询弹性云服务器的弹性公网IP地址。多网卡情况下,只显示主网卡的弹性公网IP地址。
URI
/169.254.169.254/latest/meta-data/public-ipv4
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/public-ipv4
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-ipv4
46.1.1.2
Public Keys(EC2-兼容的API)
用于查询弹性云服务器的公钥。
URI
/169.254.169.254/latest/meta-data/public-keys/0/openssh-key
方法
支持GET请求。
示例
Linux操作系统:
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
Windows操作系统:
华为云共建智能世界云底座[52] 华为公有云专属云主机DeH服务[51] 华为云场景化解决方案[49] 华为公有云产品[44] 华为云云主机[43] 华为云产品服务[43] 华为云服务器应用[43] 华为弹性云服务器[39] 华为公有云架构解决方案[38] 华为云提供的服务[37] 华为虚拟私有云vpc[37] 华为公有云介绍[32] 华为公有云提供哪些计算服务[30] 华为云漏洞扫描[27] 华为云软件开发服务[27] 华为公有云和私有云区别[27] 华为云域名注册[26] 华为云官网登陆[26] 华为公有云解决方案[26] 华为私有云产品有哪些[26] 华为私有云服务[25] 华为云数据库[23] 华为云安全[22] 华为公有云官网[22] 华为私有云的搭建方案[22] 华为云弹性云服务器应用[21] 华为公有云平台[20] 华为公有云行业解决方案[20] 华为私有云解决方案服务定制领导者[20] [19] 华为私有云服务器[19] 华为私有云网格结构[19] 华为公有云视讯解决方案[18] 华为云官网[17] 华为云速建站[17] 华为私有云架构[17] 华为云优势[16] 华为云服务器[16] 华为私有云部署架构[16] 华为云企业邮箱服务 (SAAS[15] 华为云邮箱[15] 华为公有云是什么[15] 华为公有云架构[15] 华为云迁移解决方案[14] 华为公有云解决方案服务定制领导者[14] 华为私有云解决方案[14] 云邮箱)[13] 华为云园区解决方案[13] 华为云服务总代理[13] 华为云速智能客服[13] 华为公有云服务[13] 华为私有云搭建方案[13] 云与计算咨询服务[12] 云与计算培训服务[11] 华为云备份[11] 华为云服务器配置[11] 华为云服务服务中心[11] 华为云服务核心分销商[11] 华为公有云[11] 华为私有云搭建[11] 云迁移与运营支撑服务[10] 公有云私有云混合云[10] 华为云服务器ECS[10] 华为云服务器成功案例[10] 华为云解决方案[10] 华为公有云通用解决方案[9] 华为智慧云课堂解决方案[9] 华为云数据解决方案[8] 华为云是什么[8] 华为私有云平台[8] 云与计算客户支持与运维使能服务[7] 华为云官网网站[7] 华为云智慧教育解决方案[7] 华为云智慧校园解决方案[7] 华为云桌面系统集成商[7] 华为云经销商[7] 华为代理公司有哪些[7] 华为私有云方案[7] 智慧教育云平台解决方案[7] 华为云服务器试用[6] 华为云网站建设服务器[6] 华为手机代理加盟[6] 华为私有云[6] 大数据使能服务[6] 智慧教育云计算解决方案[6] 华为云云主机 [5] 华为云智慧***解决方案[5] 华为云桌面总代理商[5] 云与计算客户支持服务[4] 华为云产品介绍[4] 华为云智慧制造解决方案[4] 华为云场景化解决方案[3] 华为公有云官网[3] 华为公有云通用解决方案[3] 华为弹性云服务器[3] 华为公有云产品 [3] 华为云产品服务[2] 华为云域名注册[2] 华为云数据库[2] 华为云智慧校园解决方案[2] 华为云服务器应用[2] 华为云服务器成功案例[2] 华为云软件开发服务[2] 华为公有云产品[2] 华为公有云介绍[2] 华为公有云和私有云区别[2] 华为公有云服务[2] 华为公有云架构[2] 华为公有云架构解决方案[2] 华为公有云视讯解决方案[2] 华为公有云解决方案[2] 华为私有云产品有哪些[2] 华为私有云服务[2] 华为私有云架构[2] 智慧教育云计算解决方案[2] 云规划设计与实施服务[2] 云邮箱[2] 华为云产品报价[2] 华为公有云通用解决方案 [2] 华为云服务器成功案例[1] 华为云桌面系统集成商[1] 云与计算客户支持与运维使能服务[1] 云迁移与运营支撑服务[1] 云迁移与运营支撑服务 [1] 华为云共建智能世界云底座[1] 华为云备份[1] 华为云安全[1] 华为云官网登陆[1] 华为云弹性云服务器应用[1] 华为云提供的服务[1] 华为云数据解决方案[1] 华为云智慧制造解决方案[1] 华为云服务器[1] 华为云服务核心分销商 [1] 华为云漏洞扫描[1] 华为云迁移解决方案 [1] 华为云速智能客服[1] 华为云邮箱[1] 华为公有云专属云主机DeH服务[1] 华为公有云是什么[1] 华为公有云行业解决方案[1] 华为私有云搭建[1] 华为私有云方案[1] 华为私有云服务.华为公有云专属云主机DeH服务.华为云产品报价[1] 华为私有云的搭建方案[1] 华为私有云网格结构[1] 华为私有云解决方案[1] 华为私有云部署架构[1] 为云产品服务[1] 云与计算咨询服务 [1] 云与计算客户支持与运维使能服务 [1] 云与计算客户支持与运维使能服务 云与计算客户支持服务[1] 华为云是什么 [1] 华为云软件开发服[1] 华为云速智能客服 [1] 华为代理加盟[1] 华为公有云架构解决方案 [1] 华为公有云解决方案服务定制领导者 [1] 华为弹性云[1] 华为弹性云服务器 华为云域名注册 华为云服务器应用[1] 华为私有云搭建 [1] 华为私有云搭建方案 [1] 华为私有云部署架构 [1] 大数据使能服务 [1] 撒[1]