使用客户密钥管理进行静态加密
在此页面上
Atlas 默认会对所有集群存储和快照卷进行静态加密。您可以将云提供商的 KMS 与 MongoDB 加密存储引擎结合使用,增加另一层安全性。
通过密钥管理配置静态加密会给 Atlas 项目招致额外费用。要了解更多信息,请参阅高级安全。
为 Atlas 项目配置静态加密时,您可以使用以下一个或多个客户密钥管理提供商:
为 Atlas project 配置至少一个密钥管理提供商后,您可以为需要加密的每个 Atlas 集群启用客户密钥管理。密钥管理提供商不必与集群云服务提供商匹配。
注意
启用或禁用客户密钥管理时,Atlas 会执行初始同步以重新加密您的集群数据。
另外,对于仅在 Azure 区域部署了 M10
或更高版本的 Atlas 集群的项目,您可以使用 Atlas Administration API 在 AKV 中自动创建 Azure Private Link,使 Atlas 能够通过 Azure 专用网络接口与 AKV 安全通信。要了解更多信息,请参阅使用 Azure Key Vault 管理客户密钥。
Atlas 无法轮换客户托管的加密密钥。有关密钥轮换的指南,请参阅密钥管理提供商的文档。当您在项目中设立客户密钥管理时,Atlas 会创建 90 天密钥轮换警报。
如果您的 KMS 提供商不可用,仍在运行的集群不会因此被禁用。如果您决定重启集群,您的集群会因缺少 KMS 提供商而被禁用。
必需的访问权限
要配置客户密钥管理,您必须拥有对项目的 Project Owner
访问权限。
拥有 Organization Owner
访问权限的用户必须将自己作为 Project Owner
添加到项目中。
通过客户密钥管理配置 Atlas
使用密钥管理进行静态加密需要有效的密钥管理提供商凭据和加密密钥。要提供这些详细信息并启用客户密钥管理:
AtlasGoAdvanced在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Advanced。
显示“高级”页面。
支持访问 Atlas 控制平面或从 Atlas 控制平面进行访问。
要了解更多信息,请参阅允许从 Atlas 控制平面访问。
支持从 Atlas 控制平面进行访问
可选。
根据密钥管理服务配置,您可能需要添加 Atlas 控制平面 IP 地址,为项目启用静态加密,以便 Atlas 与您的 KMS 通信。
要启用 Atlas 和 KMS 之间的通信:
为 Atlas 集群启用客户密钥管理
使用客户密钥管理配置 Atlas 后,对于包含需要加密数据的每个 Atlas 集群,您需要启用客户密钥管理。
注意
您必须拥有 Project Owner
角色才能为该项目中的集群启用客户密钥管理。
对于新集群:
可选:从新集群节点添加 IP 地址。
根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:
向
ipAddresses
端点发送 GET 请求。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" ] } ] } } 将返回的 IP 地址添加到云提供商的 IP 访问列表。 您必须修改 IP 访问列表,再执行预配计划回滚。 在预配计划从 IP 访问限制回滚之前,集群最多尝试预配三天。
有关详细信息,请参阅使用 AWS、Azure 和 GCP 管理客户密钥的先决条件。
注意
如需更多时间更新 IP 访问列表,可以:
在无静态加密的情况下预配集群,然后在更新 IP 访问列表后 启用集群。
在云提供商的密钥管理服务上配置更具包容性的 IP 访问列表, 通过静态加密启动集群,然后修改 IP 访问列表。
对于现有群组:
AtlasGoClusters在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果尚未出现,请单击侧边栏中的 Clusters(部署)。
会显示集群页面。
向加密 Atlas 集群添加节点
向副本集集群或分片集群添加节点或分片。
您可以向 M10+ 集群添加可选举节点或增加分片集群中的分片数量。
可选:从新的集群节点或分片添加 IP 地址。
根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:
向
ipAddresses
端点发送 GET 请求。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" ] } ] } } 将返回的 IP 地址添加到云提供商的 IP 访问列表。 您必须修改 IP 访问列表,再执行预配计划回滚。 在预配计划从 IP 访问限制回滚之前,集群最多尝试预配三天。
验证您的 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,您可以:
您无法恢复使用已失效的密钥加密的快照。
您无法在使用您管理的密钥加密的集群上启用传统备份(已弃用)。您可以指定每 6 小时备份一次的基本快照安排。
要了解有关客户密钥管理和云备份的更多信息,请参阅: