インスタンスアイデンティティドキュメント - Amazon Elastic Compute Cloud

インスタンスアイデンティティドキュメント

作成する各インスタンスには、インスタンス自体に関する情報を提供するインスタンスアイデンティティドキュメントがあります。インスタンスアイデンティティドキュメントを使用して、インスタンスの属性を検証することができます。

インスタンスアイデンティティドキュメントは、インスタンスが停止して起動、再起動、起動するときに生成されます。インスタンスアイデンティティドキュメントは、インスタンスメタデータサービスによって (プレーンテキストの JSON 形式で) 公開されます。IPv4 アドレス 169.254.169.254 は、リンクローカルアドレスで、インスタンスからのみ有効です。詳細については、Wikipedia の リンクローカルアドレスを参照してください。IPv6 アドレス fd00:ec2::254 は、ユニークなリンクローカルアドレスで、インスタンスからのみ有効です。詳細については、Wikipedia の ユニークなローカルアドレスを参照してください。

注記

このセクションの例では、インスタンスメタデータサービスの IPv4 アドレスを使用します。169.254.169.254。IPv6 アドレスを使用して EC2 インスタンスのインスタンスメタデータを取得する場合は、IPv6 アドレスを有効にして使用してください。fd00:ec2::254。インスタンスメタデータサービスの IPv6 アドレスは、IMDSv2 コマンドと互換性があります。IPv6 アドレスは、Nitro System 上に構築されたインスタンス上でのみアクセスできます。

インスタンスアイデンティティドキュメントは、実行中のインスタンスからいつでも取得できます。インスタンスアイデンティティドキュメントには、以下の情報が含まれています。

データ 説明
devpayProductCodes

廃止.

marketplaceProductCodes

インスタンスの作成に使用された AMI の AWS Marketplace 製品コード。

availabilityZone

インスタンスが実行されているアベイラビリティーゾーン。

privateIp

インスタンスのプライベート IPv4 アドレス。

version

インスタンスアイデンティティドキュメント形式のバージョン。

instanceId

インスタンスの ID。

billingProducts

インスタンスの請求製品。

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" }

インスタンスアイデンティティドキュメント の検証

インスタンスアイデンティティドキュメントの内容を重要な用途に使用する場合は、使用前にその内容と真正性を検証する必要があります。

プレーンテキストのインスタンスアイデンティティドキュメントには、ハッシュ化および暗号化された署名が 3 つあります。これらの署名を使用して、インスタンスアイデンティティドキュメントの作成元および真正性とそれに含まれている情報を検証できます。提供されている署名は次のとおりです。

  • base64 でエンコードされた署名—RSA キーペアを使用して暗号化されたインスタンスアイデンティティドキュメントの base64 でエンコードされた SHA256 ハッシュです。

  • PKCS7 署名—DSA キーペアを使用して暗号化されたインスタンスアイデンティティドキュメントの SHA1 ハッシュです。

  • RSA-2048 署名—RSA-2048 キーペアを使用して暗号化されたインスタンスアイデンティティドキュメントの SHA256 ハッシュです。

それぞれの署名は、インスタンスメタデータの異なるエンドポイントで取得できます。ハッシュ化と暗号化の要件に応じて、これらの署名のいずれかを使用できます。署名を検証するには、対応する AWS パブリック証明書を使用する必要があります。

重要

base64 でエンコードされた署名または RSA2048 署名を使用して、インスタンスアイデンティティドキュメントを検証するには、対応する AWS パブリック証明書を AWS Support に要求する必要があります。

以下のトピックでは、それぞれの署名を使用してインスタンスアイデンティティドキュメントを検証するための詳細な手順について説明します。