对数据进行签名和验证

AO 通过 Google Distributed Cloud (GDC) 空气隔离网络,使用 gRPC 客户端对 KMS 执行签名和验证操作。

准备工作

在执行 KMS 操作之前,请配置 kubectl 以访问 Management API 服务器并获取必要的权限。

配置 Management API 服务器访问权限

配置 kubectl 以访问 Management API 服务器:

  1. 如果您尚未执行此操作,请使用 gdcloud 命令行界面 (CLI) 为 Management API 服务器获取 kubeconfig 文件
  2. 设置 MANAGEMENT_API_SERVER 环境变量:

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    PATH_TO_KUBECONFIG 替换为生成的 kubeconfig 文件的路径。

  3. 如果您尚未下载、安装和配置 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 编码的签名。

验证数据

对数据签名后,使用 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