Cloud Build 中的 CMEK 合规性

Cloud Build 通过使用为每个 build 生成的临时密钥加密构建时永久性磁盘,来提供客户管理的加密密钥 (CMEK) 合规性。无需进行任何配置。该密钥是针对每个构建生成的唯一密钥。

构建开始后,只有需要该密钥的构建流程才能访问该密钥,最长可访问 24 小时。然后,系统会从内存中擦除并销毁该密钥。

该密钥不会保留在任何位置,就连 Google 工程师或支持人员也无法访问,并且无法恢复。使用此类密钥保护的数据在构建完成后将永久无法访问。

临时密钥加密的工作原理是什么?

Cloud Build 通过使用临时密钥来支持 CMEK,从而使其与支持 CMEK 的设置完全一致且兼容。

Cloud Build 会执行以下操作来确保使用临时密钥加密构建时永久性磁盘:

  1. Cloud Build 会创建一个随机的 256 位加密密钥,用于加密每个构建时永久性磁盘。

  2. Cloud Build 利用永久性磁盘的 CSEK(客户提供的加密密钥)功能,将这个新的加密密钥用作永久性磁盘加密密钥。

  3. Cloud Build 会在创建磁盘后立即销毁临时密钥。系统绝不会将该密钥记录或写入到任何永久性存储空间,并且该密钥现在无法恢复。

  4. 构建完成后,系统会删除永久性磁盘,此时,Google 基础架构中的任何位置都不会保留该密钥的跟踪记录或加密的永久性磁盘数据。

临时密钥加密何时不适用?

当您使用源镜像(而非 GitHub 触发器)创建或触发构建时,您的源代码会存储在 Cloud Storage 或 Cloud Source Repositories 中。您可以完全控制代码存储位置,包括控制其加密方式。