加密和解密数据

本文档介绍了如何使用 gdcloud CLI 通过密钥管理系统 (KMS) 密钥加密和解密数据。

本文档面向应用运维人员组内的受众,他们需要 在 GDC 项目中执行加密操作。 如需了解详情,请参阅 GDC 气隙文档的受众

准备工作

在加密或解密数据之前,您必须拥有必要的权限并准备好环境。

申请 IAM 角色

如需加密和解密数据,请与组织 IAM 管理员联系,以在您的项目命名空间中申请 KMS 开发者 (kms-developer) 角色。

准备环境

所需权限

如需获得所需的权限,请让组织 IAM 管理员在您的项目中为您授予 KMS 开发者 (kms-developer) 角色。

加密数据

如需加密数据,请使用 gdcloud kms keys encrypt 命令。此命令使用 AEAD 密钥加密给定的明文文件,并将其写入指定的密文文件。

  • 如需加密数据,请传入密钥名称和以下内容:

    gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
      --plaintext-file=PLAINTEXT_PATH \
      --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
      --ciphertext-file=CIPHERTEXT_PATH
    

    执行以下变量替换操作:

    • NAMESPACE:项目命名空间,例如 kms-test1
    • KEY_NAME:用于加密 明文的密钥的名称,例如 key-1
    • PLAINTEXT_PATH:包含 要加密的明文的文件的路径。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE:一个可选 文件,其中包含额外的经过身份验证的数据 (AAD)。AAD 用于完整性检查,并保护您的数据免受混淆代理攻击。AAD 和明文的大小上限均为 64KB。
    • CIPHERTEXT_PATH:包含 加密明文的文件的路径。

    运行该命令后,您会看到在 --ciphertext-file 标志中指定的文件,其中包含明文文件的加密内容。

解密数据

如需解密数据,请使用 gdcloud kms keys decrypt 命令。此命令使用 AEAD 密钥解密给定的密文文件,并将其写入指定的明文文件。

  • 如需解密密文,请传入密钥名称和以下内容:

    gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
     --ciphertext-file=CIPHERTEXT_PATH \
     --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
     --plaintext-file=PLAINTEXT_PATH
    

    执行以下变量替换操作:

    • NAMESPACE:项目命名空间。
    • KEY_NAME:用于加密 明文的密钥的名称。
    • CIPHERTEXT_PATH:您要 解密的文件路径。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE:一个可选 文件,其中包含额外的经过身份验证的数据 (AAD)。AAD 用于完整性检查,并保护您的数据免受混淆代理攻击。AAD 和明文的大小上限均为 64KB。
    • PLAINTEXT_PATH:包含 解密明文的文件的路径。

    运行该命令后,您会看到在 --plaintext-file 标志中指定的文件,其中包含解密的数据。