验证已批准的请求签名
每个已获批准的 Access Approval 请求都使用非对称签名 加密密钥以验证批准。已获批准的请求可以使用 Google 管理的密钥或客户提供的 Cloud KMS 密钥进行签名。
验证签名时,您可以确保 已获批准的序列化请求有效。若要完成对 则必须将消息反序列化,然后将反序列化 消息,其中包含已批准的请求的内容。
准备工作
为了确保您服务账号的 Access Approval 服务账号
拥有必要的
拥有验证已批准的请求签名的权限
请让管理员为您的
提供
针对密钥、密钥环或密钥项目的 Cloud KMS CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向资源的“访问权限审批”服务账号授予所需的权限。
验证使用 Google 管理的密钥签名的请求
在 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
替换为 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 控制台中,前往 Access Approval 页面。
找到并选择您要验证的已批准的 Access Approval 请求。系统随即会打开请求详情页面。
在 Google Cloud 控制台的请求详情页面上的 签名,点击 content_copy 复制。
打开 Cloud Shell,然后将签名另存为名为
signature.txt
的新文件:echo SIGNATURE > ./signature.txt
将
SIGNATURE
替换为 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
。这个 确认序列化批准请求有效。