注意
您可以使用Azure Key Vault (AKV) 中的客户托管密钥 ( 集合扫描 ) 进一步加密Atlas中的静态静态数据。 本页介绍如何在您的Atlas项目以及该项目中的集群上使用 AKV配置客户密钥管理。
先决条件
要使用AKV为MongoDB项目启用客户管理的密钥,您必须:
使用 M10 或更大的集群。
拥有Azure帐户和 Key Vault凭证,以及AKV中加密密钥的密钥标识符。
对于该帐户,您必须拥有客户端ID、租户ID和密钥。
对于 Key Vault,您必须拥有订阅ID、资源组名称 和 Key Vault 名称。
要学习;了解如何配置这些Azure组件,请参阅 Azure文档。
Atlas 在为 Atlas 项目中的集群启用静态加密时使用这些资源。
为了帮助用户轻松创建或更改集群,您可以允许从公共位置访问密钥。如要缩小密钥范围并降低风险,请使用 TLS 和身份验证等控制措施。
要定义 IP 范围进行限制访问,请允许通过 Atlas IP 地址和集群节点的公共 IP 地址进行访问。
确保Atlas可以与 AKV 通信。为避免连接中断,请在节点IP地址发生变化时更新配置。示例,您可能需要更新入站访问权限规则。
如果限制对 AKV 的访问权限,则当IP地址发生变化时,会产生更大的复杂性。示例,当您创建或更新集群时,您必须在 AKV 中向所有新IP地址授予访问权限。
添加Atlas控制平面的传出IP地址。要学习;了解如何使用Atlas Administration API检索传出IP地址,请参阅获取Atlas控制平面IP地址。
如果您的 App registrations 使用条件访问权限策略(这种情况并不常见),则您必须允许来自Atlas控制平面IP地址和集群节点的公共IP地址的请求,以进行应用注册。这仅用于应用注册,不用于密钥保管库访问权限。
为项目启用客户托管密钥
您必须为项目启用集合扫描 ,然后才能在该项目中的集群上启用CMK。 您可以通过Atlas用户界面和Atlas Administration API为项目启用集合扫描 。
请输入您的 Account Credentials(激活码)。
客户 ID | 输入Azure应用程序的 Client ID(或 Application ID)。确保您已为 Active Directory Application 分配必要的访问权限。要学习;了解更多信息,请参阅所需的访问权限。 |
租户 ID | 输入 Active Directory 租户的 Tenant ID(或 Directory ID)。 |
密钥 | 输入与 Active Directory 租户关联的应用程序的未过期客户端密钥之一。 |
Azure 环境 | 选择 Active Directory 租户所在的 Azure 云。 |
输入 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 的私有端点连接,则可以选择完成 为项目启用和设置私有端点连接 的步骤。
向 encryptionAtRest
端点发送 PATCH
请求。
例子
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-05-30+json" \ --header "Content-Type: application/vnd.atlas.2024-05-30+json" \ --request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/66c9e8f1dd6c9960802420e9/encryptionAtRest" \ --data ' { "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "b054a9ff-b60a-4cb6-8df6-20726eaefce6", "enabled": true, "keyIdentifier": "https://test-tf-export.vault.azure.net/keys/test/78b9134f9bc94fda8027a32b4715bf3f", "keyVaultName": "test-tf-export", "resourceGroupName": "test-tf-export", "secret": "", "subscriptionID": "009774e0-124f-4a69-83e0-ca8cd8acb4e2", "tenantID": "1f6ef922-9303-402a-bae2-cc68810b023c" } }'
注意
启用并设立与 AKV 的私有端点连接后,无法修改以下设置:
keyVaultName
resourceGroupName
subscriptionID
验证项目的使用集合扫描的静态加密配置。
要验证使用您通过AKV管理的密钥启用和配置静态加密的请求,请向encryptionAtRest
端点发送GET
请求。
例子
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-05-30+json" \ --header "Content-Type: application/vnd.atlas.2024-05-30+json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest"
{ "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "632ff709-32a8-48a3-8224-30d2386fadaf", "enabled": true, "keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "requirePrivateNetworking": false, "resourceGroupName": "string", "subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5", "tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b", "valid": true } }
在响应中,如果您的项目已成功启用使用集合扫描的静态加密,则enabled
为true
。 您可以设立私有网络,确保Atlas和 Key Vault 之间的所有流量都通过Azure的私有网络接口进行。 要学习;了解更多信息,请参阅为项目启用和设置私有端点连接。
为 Atlas 集群启用客户密钥管理
为项目启用客户托管密钥后,必须为包含要加密的数据的每个 Atlas 集群启用客户密钥管理。
注意
您必须拥有 Project Owner
角色才能为该项目中的集群启用客户密钥管理。
对于新集群,请在创建集群时将管理自己的加密密钥设置切换为 Yes(是)。
对于现有群组:
禁用项目的客户管理密钥
您必须在项目中的每个集群上禁用客户密钥管理,然后才能禁用该项目的功能。
警告
在禁用 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 密钥标识符
注意
开始之前,请学习;了解关于轮换Azure密钥标识符。
您必须在与Atlas项目关联的 AKV 中创建新密钥。以下过程介绍如何通过在Atlas中指定新的密钥标识符来轮换Atlas项目密钥标识符。
更新 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 Server 文档中的静态加密。
要了解有关使用云备份进行静态加密的更多信息,请参阅存储引擎和云备份加密。
要启用搜索节点的客户密钥管理,请参阅启用搜索节点数据加密。