驗證已核准要求的簽章
每項核准的「存取核准」要求都會以非對稱加密編譯金鑰簽署,以驗證核准。核准的要求可使用 Google-owned and managed key 或客戶提供的 Cloud KMS 金鑰簽署。
驗證簽章後,您就能確定已核准要求的序列化位元組字串有效。如要完成驗證核准內容,您必須將訊息還原序列化,並與核准要求內容進行比較。
事前準備
為確保資源的存取核准服務帳戶具備驗證核准要求簽章的必要權限,請管理員授予資源的存取核准服務帳戶金鑰、金鑰環或金鑰專案的「Cloud KMS CryptoKey Signer/Verifier」(Cloud KMS 加密編譯金鑰簽署者/驗證者) (roles/cloudkms.signerVerifier
) IAM 角色。
管理員或許也能透過自訂角色或其他預先定義的角色,將必要權限授予資源的存取核准服務帳戶。
驗證使用 Google-owned and managed key簽署的要求
前往 Google Cloud 控制台的「存取核准」頁面。
找出並選取要驗證的已核准 Access Approval 要求。「要求詳細資料」頁面隨即開啟。
在「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」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 控制台的「存取核准」頁面。
找出並選取要驗證的已核准 Access Approval 要求。「要求詳細資料」頁面隨即開啟。
在 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」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
在「客戶管理的金鑰」下方,記下金鑰的資源 ID。
擷取公開金鑰,該金鑰就是您在上一個步驟中識別的金鑰。將下載的公開金鑰儲存為 PEM 格式,並命名為
./public_key
。使用
openssl
驗證簽章:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
如果簽名有效,輸出內容應為
Verified OK
。這表示序列化的核准要求有效。