使用 base64 编码的签名验证 实例身份文档 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 base64 编码的签名验证 实例身份文档

本主题说明如何使用 base64 编码的签名和 Amazon RSA 公有证书验证实例身份文档。

使用 base64 编码的签名和 Amazon 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. Amazon 公有证书 中找到您所在区域的 RSA 公有证书,并将内容添加到名为 certificate 的新文件。

  5. 从 Amazon 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

    如果无法验证签名,请联系 Amazon Web Services Support。