インスタンスアイデンティティドキュメント
作成する各インスタンスには、インスタンス自体に関する情報を提供するインスタンスアイデンティティドキュメントがあります。インスタンスアイデンティティドキュメントを使用して、インスタンスの属性を検証することができます。
インスタンスアイデンティティドキュメントは、インスタンスが停止して起動、再起動、起動するときに生成されます。インスタンスアイデンティティドキュメントは、インスタンスが作成されてインスタンスメタデータサービス (IMDS) によって (プレーンテキストの JSON 形式で) 公開されます。IPv4 アドレス 169.254.169.254
は、リンクローカルアドレスで、インスタンスからのみ有効です。詳細については、Wikipedia の「リンクローカルアドレスfd00:ec2::254
は、リンクローカルアドレスで、インスタンスからのみ有効です。詳細については、Wikipedia の ユニークなローカルアドレス
注記
このセクションの例では、IMDS の IPv4 アドレス 169.254.169.254
を使用します。IPv6 アドレスを使用して EC2 インスタンスのインスタンスメタデータを取得する場合は、IPv6 アドレスを有効にして使用してください。fd00:ec2::254
。IMDS の IPv6 アドレスは、IMDSv2 コマンドと互換性があります。IPv6 アドレスは、Nitro System 上に構築されたインスタンス上でのみアクセスできます。
インスタンスアイデンティティドキュメントは、実行中のインスタンスからいつでも取得できます。インスタンスアイデンティティドキュメントには、以下の情報が含まれています。
データ | 説明 |
---|---|
accountId |
インスタンスを起動した AWS アカウントの ID。 |
architecture |
インスタンスの作成に使用された AMI のアーキテクチャ (i386 | x86_64 | arm64)。 |
availabilityZone |
インスタンスが実行されているアベイラビリティーゾーン。 |
billingProducts |
インスタンスの請求製品。 |
devpayProductCodes |
廃止済み。 |
imageId |
インスタンスの起動に使用される AMI の ID。 |
instanceId |
インスタンスの ID。 |
instanceType |
インスタンスのインスタンスタイプ。 |
kernelId |
インスタンスに関連付けられているカーネルの ID (ある場合)。 |
marketplaceProductCodes |
インスタンスの作成に使用された AMI の AWS Marketplace 製品コード。 |
pendingTime |
インスタンスが作成された日時。 |
privateIp |
インスタンスのプライベート IPv4 アドレス。 |
ramdiskId |
インスタンスに関連付けられている RAM ディスクの ID (ある場合)。 |
region |
インスタンスが実行されているリージョン。 |
version |
インスタンスアイデンティティドキュメント形式のバージョン。 |
プレーンテキストの インスタンスアイデンティティドキュメント を取得する
プレーンテキストのインスタンスアイデンティティドキュメントを取得するには
インスタンスに接続し、インスタンスで使用されている IMDS のバージョンに応じて、次のいずれかのコマンドを実行します。
以下は出力例です。
{
"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 パブリック証明書を使用する必要があります。
以下のトピックでは、それぞれの署名を使用してインスタンスアイデンティティドキュメントを検証するための詳細な手順について説明します。