AO 通过 Google Distributed Cloud (GDC) 空气隔离网络,使用 gRPC 客户端对 KMS 执行签名和验证操作。
准备工作
在执行 KMS 操作之前,请配置 kubectl 以访问 Management API 服务器并获取必要的权限。
配置 Management API 服务器访问权限
配置 kubectl 以访问 Management API 服务器:
- 如果您尚未执行此操作,请使用 gdcloud 命令行界面 (CLI) 为 Management API 服务器获取 kubeconfig 文件。
设置
MANAGEMENT_API_SERVER环境变量:export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG将
PATH_TO_KUBECONFIG替换为生成的 kubeconfig 文件的路径。如果您尚未下载、安装和配置 gdcloud CLI,请执行相应操作。为此,请参阅 gcloud CLI 概览。
所需权限
如需获得所需权限,请让您的组织 IAM 管理员为您授予项目的 KMS Developer (kms-developer) 角色。
签署数据
如需对数据进行签名,请使用 gdcloud kms keys asymmetric-sign 命令。此命令使用 Signing 密钥创建输入文件的数字签名,并保存 base64 编码的签名。
如需对数据进行签名,请传入密钥名称和以下内容:
gdcloud kms keys asymmetric-sign \ namespaces/NAMESPACE/signingKeys/KEY_NAME \ --input-file=INPUT_PATH \ --signature-file=SIGNATURE_FILE执行以下变量替换操作:
- NAMESPACE:项目命名空间,例如:
kms-test1。 - KEY_NAME:用于签名的密钥的名称,例如:
key-1。 - INPUT_PATH:您要签名的输入文件的路径。
- SIGNATURE_FILE:用于保存 base64 编码签名的输出文件的路径。
运行该命令后,您会看到在
--signature-file标志中指定的输出文件,其中包含以 base64 编码的签名。- NAMESPACE:项目命名空间,例如:
验证数据
对数据签名后,使用 gdcloud kms keys asymmetric-verify 命令验证 base64 数字签名。此命令用于验证在运行 gdcloud kms keys asymmetric-sign 命令后收到的 base64 编码的数字签名是否有效。
如需验证签名,请传入签名文件和以下内容:
gdcloud kms keys asymmetric-verify \ namespaces/NAMESPACE/signingKeys/KEY_NAME \ --input-file=INPUT_PATH \ --signature-file=SIGNATURE_FILE运行该命令后,如果成功,您会看到输出
Verification OK。如果创建不成功,您会看到失败输出Verification Failure。