Atlas 默认会对所有集群存储和快照卷进行静态加密。您可以将云提供商的 KMS 与 MongoDB 加密存储引擎结合使用,增加另一层安全性。
通过密钥管理配置静态加密会给 Atlas 项目招致额外费用。要了解更多信息,请参阅高级安全。
注意
MongoDB Atlas责任共担模型定义了MongoDB及其客户在维护安全和弹性数据环境方面的互补职责。在此框架下, MongoDB管理根本的平台的安全性和操作完整性,而客户则负责其特定部署的配置、管理和数据策略。有关安全性和卓越运营之间所有权的详细划分,请参阅责任共担模型。
要实施在项目中的所有集群和专用搜索部署上启用客户托管密钥进行静态加密,请使用Atlas资源策略。您可以使用资源策略,在创建或修改集群或搜索部署之前要求提供集合扫描 。
为 Atlas 项目配置静态加密时,您可以使用以下一个或多个客户密钥管理提供商:
为 Atlas project 配置至少一个密钥管理提供商后,您可以为需要加密的每个 Atlas 集群启用客户密钥管理。密钥管理提供商不必与集群云服务提供商匹配。
注意
当您启用或禁用客户密钥管理时, Atlas会执行初始同步以重新加密您的集群数据。它还会在集群上重建MongoDB Search 和MongoDB Vector Search 索引。
另外,对于仅在 Azure 区域部署了 M10 或更高版本的 Atlas 集群的项目,您可以使用 Atlas Administration API 在 AKV 中自动创建 Azure Private Link,使 Atlas 能够通过 Azure 专用网络接口与 AKV 安全通信。要了解更多信息,请参阅使用 Azure Key Vault 管理客户密钥。
Atlas 无法轮换客户托管的加密密钥。有关密钥轮换的指南,请参阅密钥管理提供商的文档。当您在项目中设立客户密钥管理时,Atlas 会创建 90 天密钥轮换警报。
如果您的 KMS 提供商变为不可用,仍在运行的集群不会因此被禁用。如果您决定重启集群,您的集群会因缺少 KMS 提供商而被禁用。
要学习;了解加密建议,包括数据分类级别和要使用的加密类型,请参阅Atlas架构中心的Atlas数据加密建议。
必需的访问权限
要配置客户密钥管理,您必须拥有对项目的 Project Owner 访问权限。
拥有 Organization Owner 访问权限的用户必须将自己作为 Project Owner 添加到项目中。
通过客户密钥管理配置 Atlas
使用密钥管理进行静态加密需要有效的密钥管理提供商凭据和加密密钥。要提供这些详细信息并启用客户密钥管理:
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
(可选)将 Search Node Data Encryption 旁边的按钮切换为 On。
如果您使用的是Amazon Web Services KMS,则可以选择对搜索节点上的所有数据启用加密。您也可以稍后启用此功能。
要了解更多信息,请参阅为搜索节点启用客户密钥管理。
(可选)支持访问 Atlas 控制面或从 Atlas 控制面进行访问。
要了解更多信息,请参阅允许从 Atlas 控制平面访问。
支持从 Atlas 控制平面进行访问
KMS根据KMS配置,您可能必须添加Atlas控制平面IP地址才能为项目启用静态加密,这样Atlas才能与KMS通信。AtlasIPAtlasKMS
要启用 Atlas 和 KMS 之间的通信:
为 Atlas 集群启用客户密钥管理
使用客户数密钥管理配置Atlas后,必须为包含要加密的数据的每个Atlas 集群启用客户密钥管理。
注意
您必须拥有 Project Owner 角色才能为该项目中的集群启用客户密钥管理。
对于新集群:
可选:从新集群节点添加 IP 地址。
根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:
向
ipAddresses端点发送 GET 请求。returnAllIpAddresses API 端点返回新集群节点的 IP 地址列表,类似于以下内容:{ "groupId": "xxx", // ObjectId "services": { "clusters": [ { "clusterName": "Cluster0", "inbound": [ "3.92.113.229", "3.208.110.31", "107.22.44.69" ], "outbound": [ "3.92.113.229", "3.208.110.31", "107.22.44.69" ] } ] } }
对于现有群组:
在Atlas中,转到项目的 Clusters 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Clusters。
会显示集群页面。
为搜索节点启用客户密钥管理
为项目配置客户数密钥管理时,您还可以使用客户数密钥管理为搜索节点启用加密。这可确保您的MongoDB Search 和MongoDB Vector Search 工作负载(包括索引)使用客户管理的密钥进行完全加密。
KMS 提供商均可使用此功能,但搜索节点必须位于 AWS上。
如要使用客户管理密钥对搜索节点启用数据加密:
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
使用客户密钥管理启用静态加密或编辑您的配置。
如果您尚未配置客户数密钥管理,请按照使用客户数密钥管理配置Atlas中的步骤进行操作。
否则,请单击 Encryption at Rest using your Key Management 旁边的 Edit 按钮。
注意
如果您在项目级别禁用客户密钥管理,或者如果您的客户管理密钥变得无效,Atlas 将暂停您的集群并删除搜索节点,使数据库查询不可用。
当您重新启用客户密钥管理或修复了密钥配置时,Atlas 会取消暂停集群,预配新的搜索节点并执行初始同步。初始同步完成后,搜索功能将恢复。
向加密 Atlas 集群添加节点
向副本集集群或分片集群添加节点或分片。
您可以向 M10+ 集群添加可选举节点或增加分片集群中的分片数量。
可选:从新的集群节点或分片添加 IP 地址。
根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:
向
ipAddresses端点发送 GET 请求。此 returnAllIpAddresses API 端点会返回新集群节点或分片的 IP 地址列表,类似于以下内容:{ "groupId": "xxx", // ObjectId "services": { "clusters": [ { "clusterName": "Cluster0", "inbound": [ "3.92.113.229", "3.208.110.31", "107.22.44.69" ], // List<String> "outbound": [ "3.92.113.229", "3.208.110.31", "107.22.44.69" ] } ] } }
验证您的 KMS 配置:
Atlas 验证 KMS 配置:
添加或更新档案时。
每隔 15 分钟。
使用静态加密 API 端点按需验证。
如果存在以下情况之一,Atlas 将在下次计划的有效性检查中关闭所有 mongod 和 mongos 进程:
您的密钥管理提供程序档案将变为无效
有人删除或禁用您的加密密钥
如果 Atlas 无法连接到密钥管理提供程序,则 Atlas 不会关闭进程。默认情况下,所有新项目都会启用 Encryption at Rest KMS network access denied 警报,用于通知任何 KMS 网络访问故障。您可以配置警报设置。
如果 Atlas 关闭集群,则会发生以下事件:
Atlas 向
Project Owner发送一封电子邮件,列出所有受影响的集群。Clusters 页面反映 Atlas 由于静态加密设置无效而禁用了您的集群。
您无法在已禁用的集群上读取或写入数据。您可以提交对已禁用集群的更新,例如磁盘和实例大小更改。一旦有人恢复您的加密密钥,Atlas 就会处理这些更改。Atlas 会继续执行维护并应用安全补丁。已禁用的集群会保留您的所有数据,因此仍会继续计费。
注意
虚拟机电源
当集群被禁用时,Atlas 不会停止集群正在运行的虚拟机 (VM)。Atlas 可能执行重启服务器的修补程序,但 VM 电源不会循环。
要重新获得数据访问权限:

更新配置后,点击 Try Again 进行验证。如果您不这样做,Atlas 将在下一次预定检查时进行验证。Atlas 确定您的配置有效后,所有 mongod 和 mongos 进程都会重启。
警告
如果您的密钥已删除,请恢复该密钥,重新获得对集群的访问权限。在没有有效密钥的情况下,您无法更改密钥或禁用“使用客户密钥管理进行静态加密”。
恢复已删除的密钥
要恢复已删除的密钥,请参阅密钥管理提供商的文档:
加密备份
Atlas 会加密所有快照卷。此举可保护磁盘上的集群数据。通过使用云提供商的 KMS,您可以:
您无法恢复使用已失效的密钥加密的快照。
注意
您可以使用与下载未加密快照相同的方式下载加密快照。 作为安全最佳实践,我们建议对项目的加密密钥进行基于角色的访问权限。
要了解如何下载快照,请参阅从本地下载的快照恢复。
要了解有关客户密钥管理和云备份的更多信息,请参阅: