Docs 菜单
Docs 主页
/
MongoDB Atlas
/

使用客户密钥管理进行静态加密

在此页面上

  • 必需的访问权限
  • 通过客户密钥管理配置 Atlas
  • 为 Atlas 集群启用客户密钥管理
  • 向加密 Atlas 集群添加节点
  • 验证您的 KMS 配置:
  • 恢复已删除的密钥
  • 加密备份

重要

无服务器实例中的不可用功能

无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制

Atlas 默认会对所有集群存储和快照卷进行静态加密。您可以将云提供商的 KMS与 MongoDB 加密存储引擎结合使用,从而再增加一个安全层。

通过密钥管理配置静态加密会给 Atlas 项目招致额外费用。要了解更多信息,请参阅高级安全。

为 Atlas 项目配置静态加密时,您可以使用以下一个或多个客户密钥管理提供商:

为 Atlas project 配置至少一个密钥管理提供商后,您可以为需要加密的每个 Atlas 集群启用客户密钥管理。密钥管理提供商不必与集群云服务提供商匹配。

注意

启用或禁用客户密钥管理时,Atlas 会执行初始同步以重新加密您的集群数据。

Atlas 无法轮换客户托管的加密密钥。有关密钥轮换的指南,请参阅密钥管理提供商的文档。当您在项目中设立客户密钥管理时,Atlas 会创建 90 天密钥轮换警报

如果您的 KMS 提供商不可用,仍在运行的集群不会因此被禁用。如果您决定重启集群,您的集群会因缺少 KMS 提供商而被禁用。

要配置静态加密,您必须拥有 Atlas 的 Organization OwnerProject Owner 权限。

使用密钥管理进行静态加密需要有效的密钥管理提供商凭据和加密密钥。要提供这些详细信息并启用客户密钥管理:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 单击侧边栏中的 Advanced(支持)。

2
3
4
5

重要

此时,入站 Atlas 控制平面 IP 地址尚不可用。您的 API 响应中的入站 IP 地址列表为空。

要手动检索入站 Atlas 控制平面 IP 地址列表,请参阅所需的入站访问

根据密钥管理服务配置, 您可能需要添加 Atlas 控制面 IP 地址, 为项目启用静态加密,以便 Atlas 与 KMS 通信。 要启用 Atlas 和 KMS 之间的通信:

  1. returnAllControlPlaneIPAddresses端点发送 GET 请求。 API 端点返回 CIDR 中的入站和出站 Atlas 控制平面 IP 地址列表,按云提供商和地区分类,类似于以下内容:

    {
    "controlPlane": {
    "inbound": {
    "aws": { // cloud provider
    "us-east-1": [ // region
    "3.92.113.229/32",
    "3.208.110.31/32",
    "107.22.44.69/32"
    ...,
    ],
    ...
    }
    },
    "outbound": {
    "aws": { // cloud provider
    "us-east-1": [ // region
    "3.92.113.229/32",
    "3.208.110.31/32",
    "107.22.44.69/32"
    ...,
    ],
    ...
    }
    }
    },
    "data_federation": {
    "inbound": {},
    "outbound" {}
    },
    "app_services": {
    "inbound": {},
    "outbound" {}
    },
    ...
    }
  2. 将返回的 IP 地址添加到云提供商的 IP 访问列表。有关详细信息,请参阅使用 AWSAzureGCP 管理客户密钥的先决条件。

使用客户密钥管理配置 Atlas后,您必须为包含要加密的数据的每个 Atlas 集群启用客户密钥管理。

注意

您必须拥有 Project Owner 角色才能为该项目中的集群启用客户密钥管理。

对于新集群:

1

在集群配置表中,将 Manage your own encryption keys 设置切换为 Yes

2
  1. 单击 Review Changes(连接)。

  2. 查看更改,然后单击 Apply Changes 以部署集群。

3

根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:

  1. 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"
    ]
    }
    ]
    }
    }
  2. 将返回的 IP 地址添加到云提供商的 IP 访问列表。 您必须修改 IP 访问列表,再执行预配计划回滚。 在预配计划从 IP 访问限制回滚之前,集群最多尝试预配三天。

    有关详细信息,请参阅使用 AWSAzureGCP 管理客户密钥的先决条件。

    注意

    如需更多时间更新 IP 访问列表,可以:

    • 在无静态加密的情况下预配集群,然后在更新 IP 访问列表后 启用集群。

    • 在云提供商的密钥管理服务上配置更具包容性的 IP 访问列表, 通过静态加密启动集群,然后修改 IP 访问列表。

对于现有群组:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2

根据密钥管理服务配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:

  1. 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"
    ]
    }
    ]
    }
    }
  2. 将返回的 IP 地址添加到云提供商的 IP 访问列表。有关详细信息,请参阅使用 AWSAzureGCP 管理客户密钥的先决条件。

3

对于包含要加密的数据的集群,单击省略号 ...,然后选择 Edit Configuration

4
  1. 展开 Additional Settings 面板。

  2. Manage your own encryption keys 设置切换为 Yes

5
  1. 单击 Review Changes(连接)。

  2. 查看更改,然后单击 Apply Changes 以更新集群。

1

您可以向 M10+ 集群添加可选举节点增加分片集群中的分片数量

2

根据密钥管理配置,您可能需要将 Atlas 集群节点 IP 地址添加到云提供商 KMS 访问列表, 以便集群与 KMS 通信。 要启用集群与 KMS 之间的通信,请执行以下操作:

  1. 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"
    ]
    }
    ]
    }
    }
  2. 将返回的 IP 地址添加到云提供商的 IP 访问列表。 您必须修改 IP 访问列表,再执行预配计划回滚。 在预配计划从 IP 访问限制回滚之前,集群最多尝试预配三天。

    有关详细信息,请参阅使用 AWSAzureGCP 管理客户密钥的先决条件。

Atlas 验证您的 KMS 配置:

如果存在以下条件之一,Atlas 会在下一次计划的有效性检查时关闭所有mongodmongos进程:

  • 您的密钥管理提供程序档案将变为无效

  • 有人删除或禁用您的加密密钥

如果 Atlas 无法连接到密钥管理提供程序,则 Atlas 不会关闭进程。默认情况下,所有新项目都会启用 Encryption at Rest KMS network access denied 警报,用于通知任何 KMS 网络访问故障。您可以配置警报设置

如果 Atlas 关闭集群,则会发生以下事件:

  • Atlas 向 Project Owner 发送一封电子邮件,列出所有受影响的集群。

  • Clusters 页面反映 Atlas 由于静态加密设置无效而禁用了您的集群。

您无法在已禁用的集群上读取或写入数据。您可以提交对已禁用集群的更新,例如磁盘和实例大小更改。一旦有人恢复您的加密密钥,Atlas 就会处理这些更改。Atlas 会继续执行维护并应用安全补丁。已禁用的集群会保留您的所有数据,因此仍会继续计费。

注意

虚拟机电源

当集群被禁用时,Atlas 不会停止集群正在运行的虚拟机 (VM)。Atlas 可能执行重启服务器的修补程序,但 VM 电源不会循环。

要重新获得数据访问权限:

“重试”按钮位于 Atlas Advanced Security 设置中“客户主密钥 ID”字段的右侧
点击放大

更新配置后,点击 Try Again 进行验证。如果您不这样做,Atlas 将在下一次预定检查时进行验证。Atlas 确定您的配置有效后,所有 mongodmongos 进程都会重启。

警告

如果您的密钥已删除,请恢复该密钥,重新获得对集群的访问权限。在没有有效密钥的情况下,您无法更改密钥或禁用“使用客户密钥管理进行静态加密”。

要恢复已删除的密钥,请参阅密钥管理提供商的文档:

Atlas 会加密所有快照卷。此举可保护磁盘上的集群数据。通过使用云提供商的 KMS,您可以:

  • 对存储备份的快照存储卷进行加密。

  • 加密快照中的数据文件。

  • 使用创建快照时处于活动状态的密钥来恢复快照。

  • 加密 PIT 恢复 oplog 数据。

您无法恢复使用已失效的密钥加密的快照。

您无法在使用您管理的密钥加密的集群上启用传统备份(已弃用)。您可以指定每 6 小时备份一次的基本快照计划

要了解有关客户密钥管理和云备份的更多信息,请参阅存储引擎和云备份加密以及使用静态加密从快照中恢复

← 设置自我管理的 X.509 身份验证