執行個體身分文件 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行個體身分文件

您啟動的每個執行個體都有一個提供執行個體本身相關資訊的 執行個體身分文件。您可以使用 執行個體身分文件 來驗證執行個體的屬性。

執行個體停止、開始、重新開始或啟動時,會產生執行個體身分文件。執行個體身分文件會透過執行個體中繼資料服務 (IMDS) 公開 (以純文字 JSON 格式)。IPv4 地址 169.254.169.254 是 link-local 地址且僅在執行個體中有效。如需詳細資訊,請參閱維基百科上的 Link-local address。IPv6 地址 [fd00:ec2::254] 是唯一本地地址且僅在執行個體中有效。如需詳細資訊,請參閱維基百科上的 Unique local address (唯一本地地址)。

注意

本節中的範例使用 IMDS 的 IPv4 地址:169.254.169.254。如果您要透過 IPv6 地址擷取 EC2 執行個體的執行個體中繼資料,請確定您啟用並改用 IPv6 地址:[fd00:ec2::254]。IMDS 的 IPv6 地址與 IMDSv2 命令相容。IPv6 位址只能在 AWS Nitro 系統上建置的執行個體和支援 IPv6 的子網路中存取 (僅限雙堆疊或 IPv6)。

您可以隨時從執行中的執行個體擷取 執行個體身分文件。執行個體身分文件 包含了下列資訊:

資料 描述
accountId

啟動執行個體的 AWS 帳戶 ID。

architecture

用於啟動執行個體 (i386 | x86_64 | arm64) 的 AMI 架構。

availabilityZone

執行個體執行的可用區域。

billingProducts

執行個體的計費產品。

devpayProductCodes

已廢除。

imageId

用來啟動執行個體的 AMI ID。

instanceId

執行個體的 ID。

instanceType

執行個體的執行個體類型。

kernelId

與執行個體相關聯的核心 ID (如適用)。

marketplaceProductCodes

用來啟動執行個體的 AMI AWS Marketplace 產品代碼。

pendingTime

執行個體啟動的日期和時間。

privateIp

執行個體的私有 IPv4 地址。

ramdiskId

與此執行個體相關聯的 RAM 磁碟 ID (如適用)。

region

執行個體執行時所在區域。

version

執行個體身分文件 格式的版本。

擷取純文字 執行個體身分文件

要擷取純文字 執行個體身分文件

連接至執行個體並執行下列命令。

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" http://169.254.169.254/latest/dynamic/instance-identity/document
IMDSv1
$ curl http://169.254.169.254/latest/dynamic/instance-identity/document
IMDSv2
PS C:\> [string]$token = (Invoke-WebRequest -Method Put -Headers @{'X-aws-ec2-metadata-token-ttl-seconds' = '21600'} http://169.254.169.254/latest/api/token).Content
PS C:\> (Invoke-WebRequest -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/dynamic/instance-identity/document).Content
IMDSv1
PS C:\> (Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/document).Content

下列為範例輸出。

{ "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 編碼的簽章 – 此為使用 RSA 金鑰對加密之執行個體身分文件的 base64 編碼 SHA256 雜湊。

  • PKCS7 簽章 – 此為使用 DSA 金鑰對加密的 執行個體身分文件 SHA1 雜湊。

  • RSA-2048 簽章 – 此為使用 RSA-2048 金鑰對加密的執行個體身分文件 SHA256 雜湊。

每個簽章都可以在執行個體中繼資料的不同端點上使用。您可以根據您的雜湊和加密需求使用任何一個簽章。若要驗證簽章,您必須使用對應的 AWS 公用憑證。

下列主題提供使用每個簽章來驗證 執行個體身分文件 的詳細步驟。