Atlas 使用高级加密标准 (AES)-256 加密您的静态数据。静态加密始终处于启用状态,您无法将其禁用。
Atlas 使用的加密层以及保护数据的密钥取决于您的 数据库版本 以及您是否自带加密密钥。
按数据库版本划分的加密层
无论您选择哪个版本的 Atlas,您的数据始终默认处于加密状态。
Atlas Core 加密
对于 Atlas Core,您的云提供商会加密存储着集群数据的存储卷。云提供商自动执行此磁盘加密,并在 KMS 中托管加密密钥。此默认卷级磁盘加密无需配置,始终开启,且无法禁用。您可以进一步提升安全性,方法是使用客户数托管密钥启用数据库级别的静态加密。
当您使用客户数托管密钥配置静态加密时,Atlas 会在默认磁盘加密之上添加数据库级加密。要了解如何配置客户数托管密钥,请参阅使用客户数密钥管理进行静态加密。
Atlas Infinite 加密
通过 Atlas Infinite,默认启用静态加密,并始终应用于整个数据库。您的集群在共享存储层上运行,因此无法在卷级别配置或禁用静态加密。MongoDB 为每个 Atlas 组织管理一个唯一的默认加密密钥,并每 90 天自动轮换一次。此轮换是透明的,无需您执行任何操作。密钥绝不会在客户数之间共享。此外,您还可以使用客户数托管的密钥应用额外的加密层。当您使用客户托管的密钥配置静态加密时,Atlas 会在默认加密之上添加数据库级加密。
Atlas 在数据到达 Atlas Infinite 集群中的存储层之前,在 计算节点 上对数据库级别的数据进行加密。
Atlas Infinite 使用信封加密来保护您的数据。Atlas 使用数据加密密钥对您的数据进行加密,并使用密钥加密密钥 (KEK) 对这些密钥进行加密。MongoDB 在存储层而不是在单个计算节点上托管 KEK。因此,集群中的每个计算节点都可以解密其从存储层接收到的数据。
数据库级别加密与 Atlas Core 使用的默认卷级别磁盘加密不同。对于 Atlas Core,您的云提供商会对存储卷进行加密。对于 Atlas Infinite,Atlas 在数据离开计算节点之前对数据进行加密,并以加密形式存储数据。
由于 MongoDB 为每个组织管理一个单独的密钥,对于使用默认加密的集群,Atlas 不支持跨组织恢复,仅支持同一组织内的跨项目恢复。
要了解有关 Atlas Infinite 架构的更多信息,请参阅 MongoDB Atlas Infinite:概述。
客户数托管的密钥
使用客户管理的密钥 (客户主密钥)(也称为自带密钥 (BYOK)),您可以拥有和控制加密密钥。在 Atlas Core 中,您可以使用以下一种或多种密钥管理提供商:
对于处于公开预览阶段的 Atlas Infinite,Atlas 仅通过 Amazon Web Services KMS 支持客户托管的密钥。在公开预览期间,不支持 Azure Key Vault 和 Google Cloud Platform KMS。此外,客户托管的密钥不支持跨项目和跨组织恢复。
如果您的客户数托管密钥失效,Atlas 将在下一个计划的 KMS 有效性检查中关闭您的集群。要了解 Atlas 如何验证您的密钥配置,请参阅 验证您的 KMS 配置。
客户密钥管理如何工作 (Atlas Core)
Atlas 中的客户密钥管理遵循的是一种称为信封加密的流程。此流程通过使用一个密钥加密另一个密钥来创建多层加密。为了启用客户密钥管理,Atlas 使用以下加密密钥:
Customer-Managed Key (CMK)客户托管密钥是您在您的密钥管理提供商中创建、拥有和管理的加密密钥。您在您的密钥管理提供商中创建 客户主密钥,并在 项目 级别将其连接到 Atlas。若要详细了解在您的密钥管理提供商中使用的 客户主密钥,请参阅您的密钥管理提供商的文档。
Atlas 仅使用此密钥来加密 MongoDB 主密钥。
密钥轮换
Atlas 无法轮换客户托管的加密密钥。有关密钥轮换的指导,请参阅密钥管理提供商的文档。当您在项目中设置客户数密钥管理时,Atlas 会创建 90天密钥轮换警报。
对于 Atlas Core,Atlas 会轮换您的客户数托管密钥所加密的 MongoDB 主密钥:
当您使用自己的云提供商 KMS 时,Atlas 会自动轮换 MongoDB 主密钥,至少每 90 天。如果您已配置维护窗口,您的密钥轮换将在 维护窗口 期间开始。推迟维护(手动或自动)可能会导致密钥轮换超过 90 天的时间限制。密钥滚动轮换,并且该过程不需要重写数据。
对于 Atlas Infinite,Atlas 会每 90 天自动轮换一次默认加密密钥。轮换会添加密钥的新版本。用于加密现有数据的密钥版本保持有效,因此之前写入的数据仍然可读。
在不同密钥类型之间迁移(Atlas Infinite)
对于 Atlas Infinite,您可以在默认加密与客户托管密钥之间双向迁移。Atlas Infinite 将迁移当作密钥轮换。您的集群在迁移过程中保持可用,并且上一个密钥在迁移完成前保持有效。
加密备份 (Atlas Core)
Atlas 会加密所有快照卷。此举可保护磁盘上的集群数据。通过使用云提供商的 KMS,您可以:
您无法恢复使用已失效的密钥加密的快照。
保留的安全控制
所有 Atlas 安全控制措施均适用于 Atlas Core 和 Atlas Infinite,包括:
开始体验
要配置密钥管理提供商并启用客户数密钥管理,请参阅使用客户数密钥管理的静态加密。
要对项目中的所有集群和专用搜索部署要求使用客户数托管的密钥,请参阅Atlas 资源策略。