승인된 요청 서명 검증
승인된 각 액세스 승인 요청은 승인을 검증하기 위해 비대칭 암호화 키로 서명됩니다. 승인된 요청은 Google 관리 키 또는 고객 제공 Cloud KMS 키로 서명될 수 있습니다.
서명을 검증하면 직렬화된 승인된 요청의 바이트 문자열이 유효한지 확인할 수 있습니다. 승인 콘텐츠의 검증을 완료하려면 메시지를 역직렬화하고 역직렬화된 메시지를 승인된 요청의 콘텐츠와 비교해야 합니다.
시작하기 전에
리소스의 액세스 승인 서비스 계정에 승인된 요청 서명을 확인하는 데 필요한 권한이 있는지 확인하려면 키, 키링 또는 키 프로젝트에 대한 Cloud KMS CryptoKey 서명자/확인자(roles/cloudkms.signerVerifier
) IAM 역할을 리소스의 액세스 승인 서비스 계정에 부여해 달라고 관리자에게 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 리소스의 액세스 승인 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
Google 관리 키를 사용하여 서명된 요청 검증
Google Cloud 콘솔에서 액세스 승인 페이지로 이동합니다.
검증하려는 승인된 액세스 승인 요청을 찾아 선택합니다. 요청 세부정보 페이지가 열립니다.
Google 관리 공개 키에서 content_copy 복사를 클릭합니다.
Cloud Shell을 연 다음 공개 키를
public_key
라는 새 파일로 저장합니다.echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
GOOGLE_MANAGED_PUBLIC_KEY
를 Google 관리 공개 키 필드의 콘텐츠로 바꿉니다.Google Cloud 콘솔의 요청 세부정보 페이지에서 서명 아래에 있는 content_copy 복사를 클릭합니다.
Cloud Shell을 열고 서명을
signature.txt
라는 새 파일로 저장합니다.echo SIGNATURE > ./signature.txt
SIGNATURE
를 서명 필드의 콘텐츠로 바꿉니다.base64
명령어를 사용하여 서명을 디코딩하고 결과를decoded_signature
로 저장합니다.base64 ./signature.txt -d > ./decoded_signature
Google Cloud 콘솔의 요청 세부정보 페이지에서 직렬화된 승인 요청 아래에 있는 content_copy 복사를 클릭합니다.
Cloud Shell을 열고 직렬화된 승인 요청을
serialized_approval_request.txt
라는 새 파일로 저장합니다.echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
SERIALIZED_APPROVAL_REQUEST
를 직렬화된 승인 요청 필드의 콘텐츠로 바꿉니다.직렬화된 승인 요청을 디코딩하고 결과를
decoded_serialized_approval_request
로 저장합니다.base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
openssl
을 사용하여 서명을 확인합니다.openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
서명이 유효하면 출력은
Verified OK
입니다. 이렇게 표시된다면 직렬화된 승인 요청이 유효한 것입니다.
고객 제공 키를 사용하여 서명된 요청 검증
Google Cloud 콘솔에서 액세스 승인 페이지로 이동합니다.
검증하려는 승인된 액세스 승인 요청을 찾아 선택합니다. 요청 세부정보 페이지가 열립니다.
Google Cloud 콘솔의 요청 세부정보 페이지에서 서명 아래에 있는 content_copy 복사를 클릭합니다.
Cloud Shell을 열고 서명을
signature.txt
라는 새 파일로 저장합니다.echo SIGNATURE > ./signature.txt
SIGNATURE
를 서명 필드의 콘텐츠로 바꿉니다.서명을 디코딩하고 결과를
decoded_signature
로 저장합니다.base64 ./signature.txt -d > ./decoded_signature
Google Cloud 콘솔의 요청 세부정보 페이지에서 직렬화된 승인 요청 아래에 있는 content_copy 복사를 클릭합니다.
Cloud Shell을 열고 직렬화된 승인 요청을
serialized_approval_request.txt
라는 새 파일로 저장합니다.echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
SERIALIZED_APPROVAL_REQUEST
를 직렬화된 승인 요청 필드의 콘텐츠로 바꿉니다.직렬화된 승인 요청을 디코딩하고 결과를
decoded_serialized_approval_request
로 저장합니다.base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
고객 관리 키에서 키의 리소스 식별자를 기록해 둡니다.
이전 단계에서 식별한 키의 공개 키를 검색합니다. 다운로드한 공개 키를 PEM 형식의
./public_key
로 저장합니다.openssl
을 사용하여 서명을 확인합니다.openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
서명이 유효하면 출력은
Verified OK
입니다. 이렇게 표시된다면 직렬화된 승인 요청이 유효한 것입니다.