Gunakan tanda tangan dengan enkode base64 untuk memverifikasi dokumen identitas instans - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan tanda tangan dengan enkode base64 untuk memverifikasi dokumen identitas instans

Topik ini menjelaskan cara memverifikasi dokumen identitas instans menggunakan tanda tangan berenkode base64 dan sertifikat publik AWS RSA.

Untuk memvalidasi dokumen identitas instans menggunakan tanda tangan berenkode base64 dan sertifikat publik AWS RSA.
  1. Hubungkan dengan instans.

  2. Ambil tanda tangan berenkode base64 dari metadata instans, konversikan ke array bita, dan tambahkan tanda tangan tersebut ke variabel bernama $Signature. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans.

    IMDSv2
    PS C:\> [string]$token = (Invoke-WebRequest -Method Put -Headers @{'X-aws-ec2-metadata-token-ttl-seconds' = '21600'} http://169.254.169.254/latest/api/token).Content
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/dynamic/instance-identity/signature).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/signature).Content)
  3. Ambil dokumen identitas instans plaintext dari metadata instans, ubah menjadi array byte, dan tambahkan ke variabel bernama $Document. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans.

    IMDSv2
    PS C:\> $Document = [Text.Encoding]::UTF8.GetBytes((Invoke-WebRequest -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/dynamic/instance-identity/document).Content)
    IMDSv1
    PS C:\> $Document = [Text.Encoding]::UTF8.GetBytes((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/document).Content)
  4. Tambahkan sertifikat publik RSA untuk Wilayah Anda di Sertifikat publik AWS dan tambahkan konten ke file baru yang bernama certificate.pem.

  5. Verifikasi dokumen identitas instans.

    PS C:\> [Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)).PublicKey.Key.VerifyData($Document, 'SHA256', $Signature)

    Jika tanda tangan valid, perintah mengembalikan True. Jika tanda tangan tidak dapat diverifikasi, kontak AWS Support.