实例身份文档 - Amazon Elastic Compute Cloud

实例身份文档

您启动的每个实例都有一个实例身份文档,用于提供有关实例自身的信息。您可以使用实例身份文档验证实例的属性。

在启动实例并通过实例元数据服务公开(以明文 JSON 格式)该实例时生成实例身份文档。IP 地址 169.254.169.254 是链路本地地址,仅从该实例有效。有关更多信息,请参阅 Wikipedia 上的链路本地地址

您可以随时从正在运行的实例中检索实例身份文档。实例身份文档 中包括以下信息:

数据 说明
devpayProductCodes

已淘汰。

marketplaceProductCodes

用于启动实例的 AMI 的 AWS Marketplace 产品代码。

availabilityZone

实例在其中运行的可用区。

privateIp

实例的私有 IPv4 地址。

version

实例身份文档格式的版本。

instanceId

实例的 ID。

billingProducts

用于启动实例的 AMI 的计费产品代码。

instanceType

实例的实例类型。

accountId

启动实例的 AWS 账户的 ID。

imageId

用于启动实例的 AMI 的 ID。

pendingTime

启动实例的日期和时间。

architecture

启动实例所用 AMI 的架构 (i386 | x86_64 | arm64)。

kernelId

与实例关联的内核的 ID(如果适用)。

ramdiskId

与实例关联的 RAM 磁盘的 ID(如果适用)。

region

运行实例的区域。

检索明文实例身份文档

检索明文实例身份文档

连接到实例,并根据实例使用的实例元数据服务 (IMDS) 版本运行以下命令之一。

IMDSv2
$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/dynamic/instance-identity/document
IMDSv1
$ curl http://169.254.169.254/latest/dynamic/instance-identity/document

下面是示例输出。

{ "devpayProductCodes" : null, "marketplaceProductCodes" : [ "1abc2defghijklm3nopqrs4tu" ], "availabilityZone" : "us-west-2b", "privateIp" : "10.158.112.84", "version" : "2017-09-30", "instanceId" : "i-1234567890abcdef0", "billingProducts" : null, "instanceType" : "t2.micro", "accountId" : "123456789012", "imageId" : "ami-5fb8c835", "pendingTime" : "2016-11-19T16:32:11Z", "architecture" : "x86_64", "kernelId" : null, "ramdiskId" : null, "region" : "us-west-2" }

验证实例身份文档

如果您打算将实例身份文档的内容用于重要用途,则应在使用前验证其内容和真实性。

明文实例身份文档附有三个经哈希处理的加密签名。您可以使用这些签名验证实例身份文档的来源和真实性以及其中包含的信息。其中提供以下签名:

  • Base64 编码的签名 — 这是实例身份文档的 Base64 编码 SHA256 哈希值,使用 RSA 密钥对进行加密。

  • PKCS7 签名 — 这是实例身份文档的 SHA1 哈希值,使用 DSA 密钥对进行加密。

  • RSA-2048 签名 — 这是实例身份文档的 SHA256 哈希值,使用 RSA-2048 密钥对进行加密。

每个签名在实例元数据中的不同终端节点上可用。您可以根据哈希和加密要求使用这些签名中的任何一个。要验证签名,您必须使用对应的 AWS 公有证书。

重要

要使用 base64 编码的签名或 RSA2048 签名验证实例身份文档,您必须从 AWS Support 请求对应的 AWS 公有证书。

以下主题提供了使用每个签名验证实例身份文档的详细步骤。