AlloyDB Omni 的透明数据加密

选择文档版本:

为了在不修改应用代码的情况下保护敏感信息并满足严格的合规性要求,您可以使用透明数据加密 (TDE) 来保护 AlloyDB Omni 中的静态数据。本概览介绍了 TDE 如何在数据库文件、日志和缓存写入磁盘之前自动对其进行加密,从而以最低的运营开销确保深度安全性。

密钥层次结构

AlloyDB Omni 实现了一个双层密钥层次结构,可在数据库和用户管理的安全基础架构之间严格实现职责分离。

  • 数据加密密钥 (DEK):由 AlloyDB Omni 生成和拥有的密钥。这些密钥会对实际数据文件、WAL 和临时文件进行加密。AlloyDB Omni 会将 DEK 存储在磁盘上,但会使用您的 KEK 对其进行封装。
  • 密钥加密密钥 (KEK):您在外部密钥管理服务 (KMS) 中管理的主密钥。 AlloyDB Omni 使用您的 KEK 对 DEK 进行加密。 AlloyDB Omni 仅在启动时访问此密钥以解封装 DEK。您的 KEK 永远不会持久存储在数据库磁盘上。
    • KEK 的位置和访问参数通过环境变量和 --tde-kek-url 初始化标志提供。

TDE 如何与 AlloyDB Omni 搭配使用

启用 TDE 后,AlloyDB Omni 会使用与外部 KMS 集成的分层加密模型来保护您的数据。

  • 初始化和密钥检索:在集群的启动或初始化阶段,AlloyDB Omni 引擎会与您的 KMS 建立安全连接。它使用 JSON Web 令牌 (JWT) 进行身份验证,并检索 KEK。
  • 解封装 DEK:AlloyDB Omni 使用您的 KEK 来解封装 DEK,这些 DEK 以封装状态存储在本地存储空间中。然后,这些 DEK 会加载到内存中。
  • 透明数据操作:
    • 写入磁盘:当数据库将数据块、WAL 记录或临时文件写入物理磁盘时,它会在写入之前使用 AES-256 算法自动加密数据。
    • 从磁盘读取:当数据库需要将数据读取到内存中时,它会自动使用内存中保存的 DEK 解密相应块。
    • 缓存加密:TDE 还支持磁盘缓存,包括存储在缓存中的列式引擎信息。写入到冷缓存存储层的数据会加密,溢出到列式引擎的 SSD 缓存的数据在写入 SSD 之前会加密,在读取时会解密。
  • 性能优化:TDE 包含多项优化,可在保护数据的同时保持高性能。它使用优化的 AES-256-XTS 保护机制来保护数据块和缓存,并采用同步写入优化功能,以最大限度缩短快速路径上的延迟时间。

  • 安全边界:您的 KEK 绝不会存储在本地数据库磁盘上,从而确保即使物理存储介质遭到入侵,在未经授权访问外部保险库的情况下,数据仍无法读取。

加密范围和规范

AlloyDB Omni 使用业界标准的 AES-256 算法来保护您的数据。

  • 数据文件(表和索引):AES-256-XTS。
  • 预写日志 (WAL):AES-256-CTR。
  • 临时文件:AES-256-XTS 或 AES-256-CTR,具体取决于临时数据的类型。
  • 列式引擎缓存文件:AES-256-XTS。
  • 冷缓存文件:AES-256-XTS。
  • 密钥封装:AES-256-KWP。

备份和高可用性

启用 TDE 后,使用 pgBackRest 创建的备份会继承源集群的加密配置。这样可确保备份数据与主数据库一样受到同等级别的安全保护。

备份只能恢复到具有相同 KEK 的集群。

对于 HA 设置,必须使用相同的保险库环境变量初始化恢复环境。保险库环境变量必须在所有参与的主机上可用。

支持的 KMS 和身份验证

AlloyDB Omni 支持 HashiCorp Vault 作为外部 KMS 提供方。AlloyDB Omni 仅支持 KV-V2 密钥引擎,并且唯一受支持的身份验证方法是 JWT。

注意:AlloyDB Omni 支持基于文件的 KMS。不过,我们建议您仅将此功能用于测试目的,而不要用于生产工作负载。

PostgreSQL 工具兼容性

启用 TDE 的集群支持所有内置 PostgreSQL 工具(initdb 除外),并通过环境变量以透明方式支持。如果您使用的是 initdb,请确保您明确传递 KEK 网址。 如需了解详情,请参阅创建启用 TDE 的集群

限制

  • 您无法在现有集群上启用 TDE。
  • 启用后,您便无法停用 TDE。
  • 不支持对已启用 TDE 的集群进行主要版本升级。
  • 您无法将加密备份恢复到未加密的服务器,也无法将未加密的备份恢复到加密的服务器。
  • 不支持 DEK 轮替。
  • 只要 KEK 网址路径保持不变,就支持 KEK 轮换。
  • 您无法使用 FILE_COPY 策略进行 CREATE DATABASE
  • 在启用 TDE 的集群上,Barman 备份仅支持 rsync 模式。不支持 postgres 备份方法。
  • 密钥加密密钥 (KEK) 轮替仅支持 HashiCorp Vault 作为外部密钥管理系统 (KMS) 提供商。

后续步骤