PKCS7 서명을 사용하여 인스턴스 자격 증명 문서 확인
이 주제에서는 PKCS7 서명 및 AWS DSA 퍼블릭 인증서를 사용하여 인스턴스 자격 증명 문서를 확인하는 방법을 설명합니다.
필수 조건
이 절차를 수행하려면 System.Security
Microsoft .NET Core 클래스가 필요합니다. PowerShell 세션에 클래스를 추가하려면 다음 명령을 실행합니다.
PS C:\>
Add-Type -AssemblyName System.Security
참고
이 명령은 현재 PowerShell 세션에만 클래스를 추가합니다. 새 세션을 시작하는 경우 명령을 다시 실행해야 합니다.
PKCS7 서명 및 AWS DSA 퍼블릭 인증서를 사용하여 인스턴스 자격 증명 문서를 확인하려면
-
인스턴스에 연결합니다.
-
인스턴스 메타데이터에서 PKCS7 서명을 검색하여 바이트 배열로 변환한 다음
$Signature
라는 변수에 추가합니다. 인스턴스에 사용되는 IMDS 버전에 따라 다음 명령 중 하나를 사용합니다. -
인스턴스 메타데이터에서 일반 텍스트 인스턴스 자격 증명 문서를 검색하여 바이트 배열로 변환한 다음
$Document
라는 변수에 추가합니다. 인스턴스에서 사용하는 IMDS 버전에 따라 다음 명령 중 하나를 사용합니다. -
AWS 퍼블릭 인증서에서 리전의 DSA 퍼블릭 인증서를 찾고 콘텐츠를 새
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에 문의하세요.