管理加密资源

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

准备工作

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

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

管理加密资源

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

刷新存储桶的有效默认 AEADKey

最佳做法是,在写入大约 420 亿个对象后,刷新相应存储桶的默认 AEADKey。这一主动防御措施可提高安全性并防止密钥耗尽。刷新过程将创建新的 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