本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 RSA-2048 簽章驗證 執行個體身分文件
本主題說明如何使用 RSA-2048 簽名和 AWS RSA-2048 公用憑證來驗證執行個體身分識別文件。
必要條件
此程序需要 System.Security
Microsoft .NET Core 類別。若要將類別新增至您的 PowerShell 工作階段,請執行下列命令。
PS C:\>
Add-Type -AssemblyName System.Security
注意
該命令僅將類添加到當前 PowerShell 會話中。如果您啟動新的工作階段,您必須再次執行命令。
使用 RSA-2048 簽名和 AWS RSA-2048 公開憑證來驗證執行個體身份證明文件
-
連線到執行個體。
-
從執行個體中繼資料擷取 RSA-2048 簽章,將其轉換為位元組陣列,然後再新增至名為
$Signature
的變數。根據執行個體所使用的 IMDS 版本,使用下列其中一個命令。 -
從執行個體中繼資料擷取純文字執行個體身分文件,將其轉換為位元組陣列,然後新增至名為
$Document
的變數。根據執行個體所使用的 IMDS 版本,使用下列其中一個命令。 -
在 AWS 公開憑證 尋找您所在區域的 RSA-2048 公有憑證,並將內容新增至名為
certificate.pem
的新檔案。 -
從憑證檔案擷取憑證,並將其存放在名為
$Store
的變數中。PS C:\>
$Store
= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem
))) -
驗證簽章。
PS C:\>
$SignatureDocument
= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>
$SignatureDocument
.Decode($Signature
)PS C:\>
$SignatureDocument
.CheckSignature($Store
, $true)如果簽章有效,則命令不會傳回任何輸出。如果無法驗證簽章,則命令會傳回
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer
。如果無法驗證您的簽章,請聯絡 AWS Support。 -
驗證執行個體身分文件的內容。
PS C:\>
[Linq.Enumerable]::SequenceEqual($SignatureDocument
.ContentInfo.Content,$Document
)如果執行個體身分文件的內容有效,則命令會傳回
True
。如果無法驗證執行個體身分文件,請聯絡 AWS Support。