使用 Azure Key Vault 通过公共网络管理客户密钥
注意
此功能不适用于
M0
免费集群、M2
和M5
集群。要了解更多信息,请参阅 Atlas M 0 (免费集群)、M 2和 M 5限制。无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制。
您可以使用 Azure Key Vault (AKV) 中的客户托管密钥 (CMK) 进一步加密 Atlas 中的静态数据。本页介绍如何在 Atlas 项目以及该项目中的集群上使用 AKV配置客户密钥管理。
先决条件
要使用 Azure Key Vault 为 MongoDB 项目启用客户管理的密钥,您必须:
拥有Azure帐户和 Key Vault 档案,以及AKV中加密密钥的密钥标识符。
对于该帐户,您必须拥有客户端 ID、租户 ID 和密钥。
对于密钥保管库,您必须拥有订阅 ID、资源组名称和密钥保管库名称。
要了解如何配置这些 Azure 组件,请参阅 Azure 文档。
Atlas 在为 Atlas 项目中的集群启用静态加密时会使用这些资源。
为项目启用客户托管密钥
您必须为项目启用CMK ,然后才能在该项目中的集群上启用 CMK。您可以通过 Atlas 用户界面和 Atlas Administration API 为项目启用CMK 。
在 AtlasAdvanced 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Advanced 。
显示“高级”页面。
输入Encryption Key 。
密钥标识符 | 输入在密钥库中创建的密钥的完整 URL。 重要密钥标识符必须以完整的 Azure 常规格式提供
|
(可选)配置与 AKV 的私有端点连接。
要了解更多信息,请参阅为项目启用和设置私有端点连接
验证网络设置。
如果使用 Atlas Administration API 配置 Atlas 使用 Azure Private Link 与 AKV 通信,以确保 Atlas 和 Key Vault 之间的所有流量都通过 Azure 的专用网络接口进行,则 Atlas 会将Require Private Networking 状态设置为Active 。如果状态为Inactive ,并且您希望 Atlas 使用 AKV 的私有端点连接,则可以选择完成 为项目启用和设置私有端点连接 的步骤。
注意
可按需提供“使用AKV通过私有端点进行静态加密”功能。要为您的 Atlas 部署请求此功能,请联系您的客户经理。
向 端点 发送PATCH
请求。encryptionAtRest
例子
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest" \ --data ' { "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "5e4ea010-a908-45a1-a70b-ebd2e4feb055", "enabled": true, "keyIdentifier": "https://{EXAMPLEKeyVault}.vault.azure.net/keys/{EXAMPLEKey}/ d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "resourceGroupName": "string", "secret": "string", "subscriptionID": "d0dd68eb-7e97-448c-b361-f7a7213dc7e2", "tenantID": "f95ac700-4c8f-4a38-a8d1-1582733edd5b" } }'
验证项目的使用 CMK 的静态加密配置。
要验证使用您通过AKV管理的密钥启用和配置静态加密的请求,请向encryptionAtRest
端点发送GET
请求。
例子
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest"
{ "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "5e4ea010-a908-45a1-a70b-ebd2e4feb055", "enabled": true, "keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "requirePrivateNetworking": false, "resourceGroupName": "string", "subscriptionID": "d0dd68eb-7e97-448c-b361-f7a7213dc7e2", "tenantID": "f95ac700-4c8f-4a38-a8d1-1582733edd5b", "valid": true } }
在响应中,如果您的项目已成功启用使用CMK的静态加密,则enabled
为true
。您可以设置私有网络,确保 Atlas 和 Key Vault 之间的所有流量都通过Azure的私有网络接口进行。要了解更多信息,请参阅为项目启用和设置私有端点连接。
为 Atlas 集群启用客户密钥管理
为项目启用客户托管密钥后,必须为包含要加密的数据的每个 Atlas 集群启用客户密钥管理。
注意
您必须拥有 Project Owner
角色才能为该项目中的集群启用客户密钥管理。
对于新集群,请在创建集群时将管理自己的加密密钥设置切换为 Yes(是)。
对于现有群组:
在 AtlasClusters 中,转到项目的 页面。
如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。
此时会显示“集群”页面。
禁用项目的客户管理密钥
您必须在项目中的每个集群上禁用客户密钥管理,然后才能禁用该项目的功能。
警告
在禁用 Atlas 项目中的客户密钥管理之前,请勿禁用或删除 Atlas 项目中任何集群所使用的任何 AKV 密钥。如果 Atlas 无法访问 AKV 密钥,则任何通过此密钥加密的数据都将无法访问。
撤销对加密密钥的访问权限
您可以从 AKV 中撤销 Atlas 对加密密钥的访问权限。撤销对加密密钥的访问权限时,Atlas 会自动暂停您的集群,除非您的 AKV IP 访问列表限制 Atlas 管控平面。
要允许自动暂停集群,您必须:
禁用 AKV 的 IP 访问列表
支持从 Atlas 控制面访问 AKV。
注意
MongoDB 随着时间的推移添加了新的 Atlas 控制平台 IP 地址。您必须保持 IP 访问列表及时更新,以便在为 AKV 使用 IP 访问列表时允许集群自动暂停。
如果您在撤消对加密密钥的访问权限时,AKV 的 IP 访问列表限制从 Atlas 控制平台进行访问,则必须手动暂停集群才能撤消 Atlas 的访问权限。
轮换 Azure 密钥标识符
注意
此功能不适用于
M0
免费集群、M2
和M5
集群。如需了解更多信息,请参阅 Atlas M0(免费集群)、M2 和 M5 限制。无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制。
开始之前,请了解关于轮换 Azure 密钥标识符。
您必须在与 Atlas 项目关联的 Azure Key Vault 中创建新密钥。以下过程介绍如何通过在 Atlas 中指定新的密钥标识符来轮换 Atlas 项目密钥标识符。
在 AtlasAdvanced 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Advanced 。
显示“高级”页面。
更新 Azure 档案。
如果 Azure Key Vault 选择器尚未激活,请单击 Azure Key Vault 。
如果 Encryption Key 选择器尚未激活,请单击 Encryption Key 。
在 Key Identifier(密钥标识符)字段中输入 Azure 密钥标识符。
包括新加密密钥标识符的完整 URL。 例如:
https://mykeyvault.vault.azure.net/keys/AtlasKMSKey/a241124e3d364e9eb99fbd3e11124b23 重要
加密密钥必须属于为该项目配置的密钥保管库。单击 Key Vault 部分可查看当前为项目配置的密钥保管库。
单击 Update Credentials(连接)。
在密钥标识符轮换过程中,Atlas 在 Atlas 用户界面中显示横幅。在部署更改之前,请勿删除或禁用原始密钥标识符。
如果集群使用备份集群,在您验证没有快照使用过原始密钥密钥进行加密之前,请勿删除或禁用原始密钥标识符。
相关主题
如需在部署 Atlas 集群时使用“密钥管理”启用“静态加密”,请参阅“管理加密密钥”。
如需使用“密钥管理”对现有 Atlas 集群启用“静态加密”,请参阅“启用静态加密”。
如需进一步了解如何在 Atlas 中使用“密钥管理”进行静态加密,请参阅“使用客户密钥管理进行静态加密”。
要了解有关 MongoDB 静态加密的更多信息,请参阅 MongoDB 服务器文档中的静态加密。
要了解有关使用云备份进行静态加密的更多信息,请参阅存储引擎和云备份加密。