存储密文

以下步骤描述了如何使用来自 Cloud Key Management Service 的加密密钥,在应用层加密的 Cloud Storage 存储分区中存储密文。

此处介绍的步骤显示了使用 Cloud KMS 存储密文的一种方法。详细了解如何存储密文,包括密文管理中的不同选项。

设置

我们建议使用两个项目和两个用户,以确保使用密文的个人和服务与管理密文的人员之间职责分离一个项目将使用 Cloud KMS 管理密钥,另一个项目将使用 Cloud Storage 存储分区存储密钥。

创建项目

在组织内执行以下操作(此步骤由已被授予 roles/resourcemanager.organizationAdmin 角色的用户执行):

  1. 创建 Google Cloud Platform 项目,其中包含用于存储密钥的 Cloud Storage 存储分区。这些密钥将作为对象存储在存储分区中。本主题的此项目为 [MY_STORAGE_PROJECT]
  2. 创建 Google Cloud Platform 项目,该项目将使用 Cloud KMS 管理对密钥进行加密和解密的密钥。本主题的此项目为 [MY_KMS_PROJECT]

创建用户

此步骤将创建两个用户,一个用户可以管理加密密钥,另一个用户可以使用加密密钥。

使用 [MY_KMS_PROJECT] 项目执行以下操作(此步骤由 [MY_KMS_PROJECT] 项目所有者或已被授予 [MY_KMS_PROJECT] 项目的 roles/resourcemanager.organizationAdmin 角色的其他用户执行):

  1. roles/cloudkms.admin 角色授予 User1。该用户将能够管理密钥。
  2. roles/cloudkms.cryptoKeyEncrypterDecrypter 角色授予 User2。该用户将能够使用加密密钥对包含相应密文的文件进行加密和解密。

    或者,如果仅希望部分用户可以加密而另一些用户可以解密,请将 roles/cloudkms.cryptoKeyEncrypter 角色授予加密者,将 roles/cloudkms.cryptoKeyDecrypter 角色授予解密者。

创建存储分区

使用 [MY_STORAGE_PROJECT] 项目执行以下操作(此步骤由 [MY_STORAGE_PROJECT] 项目所有者或已被授予 [MY_STORAGE_PROJECT] 项目的 roles/storage.admin 角色的其他用户执行):

  1. 创建存储分区,该主题的存储分区为 [MY_BUCKET]
  2. User2 授予[MY_BUCKET] 存储分区的 roles/storage.objectAdmin 角色。

创建加密密钥

此步骤由 User1 执行。

  1. 创建名为 storage 的密钥环。密钥环的名称对项目具有唯一性。您无法重命名或删除密钥环。您可以使用 gcloud 命令行工具创建密钥环

    gcloud kms keyrings create storage --location global
    
  2. 使用 storage 密钥环创建名为 mykey 的密钥,以进行加密。密钥的名称对密钥环具有唯一性。无法重命名或删除密钥,但可以销毁其密钥版本。使用 gcloud 命令行工具创建密钥。系统将自动创建第一个密钥版本。

    gcloud kms keys create mykey --location global \
      --keyring storage --purpose encryption
    

如需了解关于创建加密密钥的更多信息,请参阅创建密钥环和密钥

对包含密钥的文件进行加密

此步骤由 User2 执行。

  1. 在本地机器上,创建包含密钥的文件,例如 mysecret.txt
  2. 使用密钥对 mysecret.txt 进行加密,在本示例中,基于 [MY_KMS_PROJECT] 项目、storage 密钥环和 mykey 密钥。将加密后的文件写入 mysecret.txt.encrypted
    如需查看借助 Cloud KMS 使用密钥对文件进行加密的示例,请参阅对数据进行加密快速入门
  3. 将加密后的文件 mysecret.txt.encrypted 上传[MY_BUCKET] 存储分区。
  4. [可选]从本地机器中删除 mysecret.txt 纯文本文件。

对包含密钥的文件进行解密

此步骤由 User2 执行。

  1. [MY_BUCKET] 存储分区将 mysecret.txt.encrypted 下载到本地机器。
  2. 使用先前用于加密的同一密钥对 mysecret.txt 进行解密。将解密后的文件写入 mysecret.txt.decrypted
    如需查看借助 Cloud KMS 使用密钥对文件进行解密的示例,请参阅对数据进行解密快速入门
  3. 使用纯文本文件 mysecret.txt.decrypted
  4. [可选]解密后的文件使用结束后,将其从本地机器中删除。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud KMS