使用 Base64 編碼簽章驗證 執行個體身分文件 - Amazon Elastic Compute Cloud

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

使用 Base64 編碼簽章驗證 執行個體身分文件

本主題說明如何使用 base64 編碼的簽章和 AWS RSA 公用憑證來驗證執行個體身分識別文件。

使用 base64 編碼的簽名和 AWS RSA 公用憑證驗證執行個體身分識別文件
  1. 連線到執行個體。

  2. 從執行個體中繼資料擷取 base64 編碼的簽章,將其轉換為二進位,然後新增至名為 signature 的檔案。根據執行個體所使用的 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" http://169.254.169.254/latest/dynamic/instance-identity/signature | base64 -d >> signature
    IMDSv1
    $ curl -s http://169.254.169.254/latest/dynamic/instance-identity/signature | base64 -d >> signature
  3. 從執行個體中繼資料擷取純文字 執行個體身分文件,並新增至名為 document 的檔案。根據執行個體所使用的 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" http://169.254.169.254/latest/dynamic/instance-identity/document >> document
    IMDSv1
    $ curl -s http://169.254.169.254/latest/dynamic/instance-identity/document >> document
  4. AWS 公開憑證 尋找您所在區域的 RSA 公有憑證,並將內容新增至名為 certificate 的新檔案。

  5. 從 AWS RSA 公開憑證擷取公開金鑰,並將其儲存到名為key的檔案中。

    $ openssl x509 -pubkey -noout -in certificate >> key
  6. 使用 OpenSSL dgst 命令來驗證 執行個體身分文件。

    $ openssl dgst -sha256 -verify key -signature signature document

    如果簽章有效,則會出現 Verification successful 訊息。

    此命令也會將執行個體身分文件內容寫入名為 document 的新檔案。您可以使用下列命令,將來自執行個體中繼資料的執行個體身分文件內容與此檔案內容比較。

    $ openssl dgst -sha256 < document
    $ curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document | openssl dgst -sha256

    如果無法驗證簽章,請聯絡 AWS Support。