管理加密资源

本页面介绍了如何管理加密的 Google Distributed Cloud (GDC) 气隙存储分区。

准备工作

项目命名空间用于管理 Management API 服务器中的存储桶资源。您必须拥有一个项目才能使用存储分区和对象。

您还必须拥有相应的存储桶权限才能执行以下操作。请参阅授予存储桶访问权限

对于双区域存储分区,请配置 kubectl 以访问全球 API 服务器。按照全局 API 服务器资源中的步骤操作,并将 GLOBAL_API_SERVER 环境变量设置为 kubeconfig 文件。

管理加密资源

采用 v2 加密的存储桶会创建一个 Secret kekRef 和多个 AEADKey,其中 kekRef 用于引用正在使用的有效默认 AEADKey,而 AEADKey 包括属于相应存储桶的有效密钥和归档密钥。

刷新存储桶的有效默认 AEADKey

最佳做法是,在写入大约 420 亿个对象后,刷新相应存储桶的默认 AEADKeys。这一主动防御措施可提高安全性并防止密钥耗尽。刷新过程将创建新的 kekRef 并停用之前的 AEADKeys。如需开始刷新流程,请删除与相应存储桶关联的 kekRef 密钥。

您可以通过运行以下命令来检索之前的 kekRef:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

然后,您可以运行以下命令来删除现有的 kekRef:

kubectl delete secrets OLD_KEKREF_NAME -n  NAMESPACE_NAME

成功删除后,您可以运行以下命令来确认是否已基于 AGE 创建新的 kekRef:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

验证是否已基于 AGE 创建新的默认 AEADKey:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

轮替存储桶的默认 AEADKey

如果存储桶的 AEADKey 遭到破解,您必须手动轮替与该存储桶关联的密钥加密密钥。

如需开始此流程,您必须先刷新有效默认密钥。这会创建新的有效默认 AEADKey,并将之前的密钥加密密钥标记为已停用。默认密钥刷新后,后续的对象上传操作会使用新的 AEADKeys 作为密钥加密密钥。之前的 AEADKey 不会被销毁,因此您仍然可以解密之前使用这些密钥加密的现有对象。

接下来,按照步骤下载并重新上传存储桶中的对象,然后删除旧对象

重新上传存储桶中的所有对象后,您可以清理不活跃的 AEADKey 和旧对象。根据 AGE 识别已停用的 AEADKey:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

最后,按照步骤删除 AEADKeys