Docs 菜单
Docs 主页
/
MongoDB 阿特拉斯
/ /

使用 Azure 密钥保管库管理客户密钥

在此页面上

  • 关于使用 Azure Key Vault 的客户托管密钥
  • 例子
  • 你需要知道什么
  • 关于轮换 Azure 密钥标识符
  • 关于停电期间的 Azure Key Vault 故障转移
  • 后续步骤
  • 必需的访问权限

注意

  • 此功能不适用于 M0免费集群、 M2M5集群。要了解更多信息,请参阅 Atlas M 0 (免费集群)、M 2和 M 5限制。

  • 无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制

您可以使用 Azure Key Vault (AKV) 中的客户托管密钥 (CMK) 进一步加密 Atlas 中的静态数据。您还可以将 AKV的所有流量配置为使用 Azure Private Link。

Atlas 使用 Azure Key Vault CMK来加密和解密 MongoDB 主密钥。这些 MongoDB 主密钥用于加密集群数据库文件和云提供商快照。要详细了解 Atlas 如何使用CMK进行加密,请参阅关于使用 Azure Key Vault 的客户托管密钥。

当您使用自己的云提供商 KMS 时,Atlas 会每 90 天自动轮换一次 MongoDB 主密钥。这些密钥滚动轮换,并且该过程不需要重写数据。

重要

AzureCMK的客户端密钥生命周期限制为两年。客户端密钥过期后,Atlas 将无法访问CMK 。因此,请在客户端密钥过期之前轮换客户端密钥,以防止集群失去可用性。

本页介绍在 Atlas 项目上使用AKV配置客户密钥管理。您还可以使用 Atlas Administration API 在AKV中自动设置 Azure 专用链接,以确保 Atlas 和AKV之间的所有流量都通过Azure的专用网络接口进行。

您必须先为 Atlas 项目配置客户密钥管理,然后才能在该项目中的集群上启用它。

Atlas 中的客户密钥管理遵循称为 信封加密 的过程 。此过程通过使用一个密钥加密另一个密钥来创建多层加密。 为了启用客户密钥管理,Atlas 使用以下加密密钥:

Customer-Managed Key (CMK)

客户管理的密钥是你在 Azure Key Vault 中创建、拥有和管理的加密密钥。您可以在 Azure Key Vault 中创建 CMK ,并在 项目 级别将其连接到 Atlas。要了解有关 Azure Key Vault 中使用的 CMK 的更多信息,请参阅 Azure 文档

Atlas 仅使用此密钥来加密 MongoDB 主密钥。

MongoDB Master Key

Atlas 集群中的每个节点都会创建一个 MongoDB 主密钥。 MongoDB 主密钥是 MongoDB Server 用于加密每数据库加密密钥的加密密钥。 Atlas 在本地保存密钥的加密副本。

此密钥使用 CMK 加密,并对每个数据库的加密密钥进行加密。

Per-Database Encryption Key

Atlas 集群中的每个节点还会为集群中的每个数据库创建一个加密密钥。Atlas 使用这些密钥,通过 WiredTiger 读取和写入数据,WiredTiger 还对这些密钥进行加密和存储。

此密钥使用 MongoDB 主密钥加密。

请考虑以下针对三节点副本集的加密层次结构。 Atlas 使用 Azure Key Vault 中的CMK为集群中的每个节点加密唯一的 MongoDB 主密钥。 每个节点还包含三个数据库,每个数据库都使用每个数据库唯一的加密密钥进行加密。 当集群启动时,Atlas 使用 Azure Key Vault 中的CMK解密 MongoDB 主密钥,并将其提供给 MongoDB Server。

注意

如果您撤销 Atlas 对客户主密钥的访问权限,Atlas 就会关闭集群中的节点,并且在您恢复对客户主密钥的访问权限之前,您无法访问数据。

使用 AKV 和 Atlas 的 CMK 工作流程示意图
点击放大

配置 Atlas 以使用AKV CMK后,请详细了解关于停电期间的Azure Key Vault 故障转移和关于停电期间的 Azure Key Vault 故障转移。

注意

当您使用自己的云提供商 KMS 时,Atlas 会每 90 天自动轮换一次 MongoDB 主密钥。这些密钥滚动轮换,并且该过程不需要重写数据。

Atlas 不会自动轮换用于 Azure Key Vault 的密钥标识符。

当您为 Atlas 项目 启用静态加密时, Atlas 会自动创建一个 来提醒您默认每 天轮换 Azureencryption key rotation alert 密钥标识符。90

您可以 轮换 您自己将 CMK 存储在 Azure Key Vault 中,或将 Azure Key Vault 配置为自动轮换密钥。如果配置 自动轮换 在 Azure Key Vault 中,默认轮换时间段约为365 天。

您如果已在 Azure 密钥保管库中设置自动轮换,并且不希望收到每 90 天轮换 Azure 密钥标识符的 Atlas 警报,则可以将默认警报期限修改为大于 365 天。

在区域中断期间,您的 AKV 区域可能不可用。如果发生这种情况, Azure 会自动将传入的 Key Vault 请求路由到预先分配的从节点区域。要了解详情,请参阅 Azure Key Vault 故障转移 区域对。

如果两个区域均已关闭,您可以手动将密钥迁移到区域配对之外的区域。要了解更多信息,请参阅跨区域移动密钥保管库

注意

如果您已启用使用客户密钥管理进行静态加密 ,则可以在中断期间至少一个节点仍然可用的情况下执行加密和解密操作。 Atlas 不会关闭您的集群。

对于某些区域, Azure 不支持自动故障转移。要了解详情,请参阅 Azure 文档。

您可以通过公共网络或Azure私有端点使用来自 Azure Key Vault (AKV) 的客户托管密钥 (CMK)。要了解详情,请参阅以下内容:

要配置客户密钥管理,您必须拥有对项目的 Project Owner 访问权限。

拥有 Organization Owner 访问权限的用户必须将自己作为 Project Owner 添加到项目中。

注意

如果启用了使用客户密钥管理进行静态加密,就可以在中断期间至少一个节点仍然可用的情况下执行加密和解密操作。

后退

AWS KMS

来年

配置通过公共网络的访问