メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

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

インスタンスアイデンティティドキュメントは、インスタンスについて説明する JSON ファイルです。インスタンスアイデンティティドキュメントには、署名と PKCS7 署名が添付されています。これを使用して、ドキュメント内の情報の正確性、オリジン、および正当性を検証することができます。たとえば、更新が有料である無料のソフトウェアをダウンロードする場合があるとします。

インスタンスが起動するときにインスタンスアイデンティティドキュメントが生成され、インスタンスメタデータを通じてインスタンスに公開されます。このドキュメントは、サブスクライブしたソフトウェア、インスタンスサイズ、インスタンスタイプ、オペレーティングシステム、AMI など、インスタンスの属性を検証します。

重要

インスタンスアイデンティティドキュメントと署名には動的な特質があるため、インスタンスアイデンティティドキュメントと署名は、定期的に取得することをお勧めします。

インスタンスアイデンティティドキュメントと署名の取得

インスタンスアイデンティティドキュメントを取得するには、実行中のインスタンスから以下のコマンドを使用します。

Copy
[ec2-user ~]$ curl http://169.254.169.254/latest/dynamic/instance-identity/document

出力例を次に示します。

{ "devpayProductCodes" : null, "availabilityZone" : "us-west-2b", "privateIp" : "10.158.112.84", "version" : "2010-08-31", "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" }

インスタンスの ID 署名を取得するには、実行中のインスタンスから以下のコマンドを使用します。

Copy
[ec2-user ~]$ curl http://169.254.169.254/latest/dynamic/instance-identity/signature

出力例を次に示します。

dExamplesjNQhhJan7pORLpLSr7lJEF4V2DhKGlyoYVBoUYrY9njyBCmhEayaGrhtS/AWY+LPx lVSQURF5n0gwPNCuO6ICT0fNrm5IH7w9ydyaexamplejJw8XvWPxbuRkcN0TAA1p4RtCAqm4ms x2oALjWSCBExample=

PKCS7 署名を取得するには、実行中のインスタンスから以下のコマンドを使用します。

Copy
[ec2-user ~]$ curl http://169.254.169.254/latest/dynamic/instance-identity/pkcs7

出力例を次に示します。

MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE

PKCS7 署名の確認

PKCS7 署名を使用して、適切な AWS パブリック証明書に対して検証することにより、インスタンスを確認できます。

AWS アカウントによって提供されるリージョンの AWS 公開証明書は、次のとおりです。

Copy
-----BEGIN CERTIFICATE----- MIIC7TCCAq0CCQCWukjZ5V4aZzAJBgcqhkjOOAQDMFwxCzAJBgNVBAYTAlVTMRkw FwYDVQQIExBXYXNoaW5ndG9uIFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYD VQQKExdBbWF6b24gV2ViIFNlcnZpY2VzIExMQzAeFw0xMjAxMDUxMjU2MTJaFw0z ODAxMDUxMjU2MTJaMFwxCzAJBgNVBAYTAlVTMRkwFwYDVQQIExBXYXNoaW5ndG9u IFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYDVQQKExdBbWF6b24gV2ViIFNl cnZpY2VzIExMQzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCjkvcS2bb1VQ4yt/5e ih5OO6kK/n1Lzllr7D8ZwtQP8fOEpp5E2ng+D6Ud1Z1gYipr58Kj3nssSNpI6bX3 VyIQzK7wLclnd/YozqNNmgIyZecN7EglK9ITHJLP+x8FtUpt3QbyYXJdmVMegN6P hviYt5JH/nYl4hh3Pa1HJdskgQIVALVJ3ER11+Ko4tP6nwvHwh6+ERYRAoGBAI1j k+tkqMVHuAFcvAGKocTgsjJem6/5qomzJuKDmbJNu9Qxw3rAotXau8Qe+MBcJl/U hhy1KHVpCGl9fueQ2s6IL0CaO/buycU1CiYQk40KNHCcHfNiZbdlx1E9rpUp7bnF lRa2v1ntMX3caRVDdbtPEWmdxSCYsYFDk4mZrOLBA4GEAAKBgEbmeve5f8LIE/Gf MNmP9CM5eovQOGx5ho8WqD+aTebs+k2tn92BBPqeZqpWRa5P/+jrdKml1qx4llHW MXrs3IgIb6+hUIB+S8dz8/mmO0bpr76RoZVCXYab2CZedFut7qc3WUH9+EUAH5mw vSeDCOUMYQR7R9LINYwouHIziqQYMAkGByqGSM44BAMDLwAwLAIUWXBlk40xTwSw 7HX32MxXYruse9ACFBNGmdX2ZBrVNGrN9N2f6ROk0k9K -----END CERTIFICATE-----

AWS GovCloud (US) リージョンの AWS パブリック証明書は次のとおりです。

Copy
-----BEGIN CERTIFICATE----- MIIC7TCCAq0CCQCWukjZ5V4aZzAJBgcqhkjOOAQDMFwxCzAJBgNVBAYTAlVTMRkw FwYDVQQIExBXYXNoaW5ndG9uIFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYD VQQKExdBbWF6b24gV2ViIFNlcnZpY2VzIExMQzAeFw0xMjAxMDUxMjU2MTJaFw0z ODAxMDUxMjU2MTJaMFwxCzAJBgNVBAYTAlVTMRkwFwYDVQQIExBXYXNoaW5ndG9u IFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYDVQQKExdBbWF6b24gV2ViIFNl cnZpY2VzIExMQzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCjkvcS2bb1VQ4yt/5e ih5OO6kK/n1Lzllr7D8ZwtQP8fOEpp5E2ng+D6Ud1Z1gYipr58Kj3nssSNpI6bX3 VyIQzK7wLclnd/YozqNNmgIyZecN7EglK9ITHJLP+x8FtUpt3QbyYXJdmVMegN6P hviYt5JH/nYl4hh3Pa1HJdskgQIVALVJ3ER11+Ko4tP6nwvHwh6+ERYRAoGBAI1j k+tkqMVHuAFcvAGKocTgsjJem6/5qomzJuKDmbJNu9Qxw3rAotXau8Qe+MBcJl/U hhy1KHVpCGl9fueQ2s6IL0CaO/buycU1CiYQk40KNHCcHfNiZbdlx1E9rpUp7bnF lRa2v1ntMX3caRVDdbtPEWmdxSCYsYFDk4mZrOLBA4GEAAKBgEbmeve5f8LIE/Gf MNmP9CM5eovQOGx5ho8WqD+aTebs+k2tn92BBPqeZqpWRa5P/+jrdKml1qx4llHW MXrs3IgIb6+hUIB+S8dz8/mmO0bpr76RoZVCXYab2CZedFut7qc3WUH9+EUAH5mw vSeDCOUMYQR7R9LINYwouHIziqQYMAkGByqGSM44BAMDLwAwLAIUWXBlk40xTwSw 7HX32MxXYruse9ACFBNGmdX2ZBrVNGrN9N2f6ROk0k9K -----END CERTIFICATE-----

他のリージョンの場合、AWS サポートに問い合わせて AWS パブリック証明書を取得してください。

PKCS7 署名を確認するには

  1. インスタンスから、PKCS7 署名用の一時ファイルを作成します。

    Copy
    [ec2-user ~]$ PKCS7=$(mktemp)
  2. -----BEGIN PKCS7----- ヘッダーを一時的な PKCS7 ファイルに追加します。

    Copy
    [ec2-user ~]$ echo "-----BEGIN PKCS7-----" > $PKCS7
  3. インスタンスのメタデータから PKCS7 署名の内容を新しい行に加えます。

    Copy
    [ec2-user ~]$ curl -s http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> $PKCS7 [ec2-user ~]$ echo "" >> $PKCS7
  4. -----END PKCS7----- フッターを追加します。

    Copy
    [ec2-user ~]$ echo "-----END PKCS7-----" >> $PKCS7
  5. インスタンスアイデンティティドキュメン用の一時ファイルを作成します。

    Copy
    [ec2-user ~]$ DOCUMENT=$(mktemp)
  6. インスタンスのメタデータから一時的なドキュメントファイルにドキュメントのコンテンツを追加します。

    Copy
    [ec2-user ~]$ curl -s http://169.254.169.254/latest/dynamic/instance-identity/document > $DOCUMENT
  7. テキストエディタを開き、AWSpubkey という名前のファイルを作成します。上記の AWS パブリック証明書の内容をコピーしてファイルに貼り付け、保存します。

  8. 次のように、OpenSSL ツールを使用して署名を確認します。

    Copy
    [ec2-user ~]$ openssl smime -verify -in $PKCS7 -inform PEM -content $DOCUMENT -certfile AWSpubkey -noverify > /dev/null Verification successful