Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Clusters gratuitos
Clusters flexíveis
Para saber mais,consulte Limites.
Você pode usar uma chave gerenciada pelo cliente (CMK) do Azure Key Vault (AKV) para criptografar ainda mais seus dados em repouso no Atlas. Você também pode configurar todo o tráfego para o seu AKV para usar o Azure Private Link.
Observação
The MongoDB Atlas Shared Responsibility Model defines the complementary duties of MongoDB and its customers in maintaining a secure and resilient data environment. Under this framework, MongoDB manages the security and operational integrity of the underlying platform, while customers are responsible for the configuration, management, and data policies of their specific deployments. For a detailed breakdown of ownership across security and operational excellence, see Shared Responsibility Model.
Atlas uses your Azure Key Vault CMK to encrypt and decrypt your MongoDB Master Keys. These MongoDB Master Keys are used to encrypt cluster database files and cloud providers snapshots. To learn more about how Atlas uses CMKs for encryption, see About Customer-Managed Keys with Azure Key Vault.
Quando você usa seu próprio KMS do provedor de nuvem, o Atlas rotaciona automaticamente as MongoDB Master Keys pelo menos a cada 90 dias. Sua rotação de chaves começará durante um período de manutenção, se você tiver um configurado. O adiamento da manutenção (manual ou automaticamente) pode fazer com que a chave seja rotacionada além da marca de 90dias. As chaves são giradas de forma contínua e o processo não exige que os dados sejam reescritos.
Importante
O Azure limita a vida útil do segredo do cliente para as chaves mestras do clienteem dois anos. Atlas não pode acessar uma chave mestra do cliente assim que o segredo do cliente expirar. Portanto, gire seus segredos do cliente antes de sua expiração para evitar a perda de disponibilidade do cluster. Para saber sobre uma opção sem segredos, consulte Gerenciar chaves do cliente com o Azure Key Vault (Sem segredos).
Esta página abrange a configuração do gerenciamento de chave do cliente utilizando AKV no seu projeto Atlas . Você também pode usar a Atlas Administration API para configurar automaticamente o Azure Private Link em seu AKV para garantir que todo o tráfego entre o Atlas e o AKV ocorra nas interfaces de rede privada do Azure .
Observação
Atlas Infinite
Azure Key Vault isn't available for Atlas Infinite during public preview. Atlas Infinite supports customer-managed keys only through AWS KMS during public preview. To learn how encryption at rest works for Atlas Infinite, see Atlas Infinite Encryption.
Você deve configurar o gerenciamento de chave do cliente para o projeto Atlas antes de habilitá-lo em clusters neste projeto.
Sobre chaves gerenciadas pelo cliente com o Azure Key Vault
O gerenciamento de chaves do cliente no Atlas segue um processo chamado criptografia de envelope. Esse processo cria várias camadas de criptografia ao criptografar uma chave com outra chave. Para habilitar o gerenciamento de chaves do cliente, o Atlas usa as seguintes chaves de criptografia:
Customer-Managed Key (CMK)Customer-managed keys are encryption keys that you create, own, and manage in Azure Key Vault. You create the CMK in Azure Key Vault and connect it to Atlas at the Project level. To learn more about the CMKs used in Azure Key Vault, see Azure Documentation.
O Atlas usa essa chave somente para criptografar as chaves mestras do MongoDB.
MongoDB Master KeyCada nó em seu cluster Atlas cria uma Chave Mestre MongoDB . As chaves mestres MongoDB são chaves de criptografia que um MongoDB Server usa para criptografar as chaves de criptografia por banco de dados. O Atlas salva uma cópia criptografada da chave localmente.
Essa chave é criptografada com a chave mestra do cliente e criptografa as chaves de criptografia por banco de dados.
Per-Database Encryption KeyCada nó no cluster do Atlas também cria uma chave de criptografia por cada banco de dados no seu cluster. O Atlas usa essas chaves para ler e gravar dados através do WiredTiger, que também criptografa e armazena essas chaves.
Essa chave é criptografada com a chave mestra MongoDB.
Exemplo
Considere a seguinte hierarquia de criptografia para um conjunto de réplicas de três nós. O Atlas usa a chave mestra do cliente do Azure Key Vault para criptografar uma MongoDB Master Key única para cada nó no cluster. Cada nó também contém três bancos de dados, cada um dos quais é criptografado com uma chave de criptografia única por banco de dados. Quando o cluster inicia, o Atlas descriptografa a MongoDB Master Key usando a chave mestra do cliente do Azure Key Vault e fornece isso ao MongoDB Server.
Observação
Se você revogar o acesso do Atlas à chave mestra do cliente, o Atlas desliga os nós do seu cluster e você não poderá acessar seus dados até restaurar o acesso à chave mestra do cliente.

O que você precisa saber
After configuring Atlas to use your AKV CMK, learn more About Rotating Your Azure Key Identifier and About Azure Key Vault Failover During an Outage.
Sobre girar seu identificador de chave Azure
Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Clusters gratuitos
Clusters flexíveis
Para saber mais,consulte Limites.
Chave mestra MongoDB - Responsabilidade do MongoDB
Quando você usa seu próprio KMS do provedor de nuvem, o Atlas rotaciona automaticamente as MongoDB Master Keys pelo menos a cada 90 dias. Sua rotação de chaves começará durante um período de manutenção, se você tiver um configurado. O adiamento da manutenção (manual ou automaticamente) pode fazer com que a chave seja rotacionada além da marca de 90dias. As chaves são giradas de forma contínua e o processo não exige que os dados sejam reescritos.
Rotacionar seu ID da chave do Azure – Sua responsabilidade
O Atlas não gira automaticamente o Identificador de Chave usado para o Azure Key Vault.
Atlas automatically creates an encryption key rotation alert to remind you to rotate your Azure Key Identifier every 90 days by default when you enable Encryption at Rest for an Atlas project.
You can rotate CMK stored in Azure Key Vault yourself or configure your Azure Key Vault to automatically rotate your keys. If you configure automatic rotation in Azure Key Vault, the default time period for rotation is approximately 365 days.
Se você já configurou uma rotação automática no Azure Key Vault e não deseja receber o alerta do Atlas para rotacionar seu Identificador de Chave Azure a cada 90 dias, você pode modificar o período de alerta padrão para ser maior que 365 dias.
Sobre o failover do Azure Key Vault durante uma interrupção
Durante uma interrupção regional, sua região do AKV pode ficar indisponível. Se isso acontecer, Azure roteia automaticamente as solicitações do Key Vault de entrada para uma região secundária pré-atribuída. Para saber mais, consulte Azure Key Vault Failover e Pares regionais.
Se as duas regiões estiverem inativas, você poderá migrar manualmente sua chave para uma região fora do emparelhamento regional. Para saber mais, consulte Mover um Key Vault entre Regiões.
Observação
Se você habilitou a Encryption at rest usando o Gerenciamento de chaves do consumidor, poderá realizar operações de criptografia e descriptografia enquanto pelo menos um nó ainda estiver disponível durante a interrupção. O Atlas não desligará seus clusters.
Para determinadas regiões, o Azure não suporta failover automático. Para saber mais, consulte a documentação do Azure.
Acesso necessário
Para configurar o gerenciamento de chave de cliente, você deve ter Project Owner acesso ao projeto.
Os usuários com acesso Organization Owner devem se adicionar ao projeto como um Project Owner.
Você deve conceder acesso ao Atlas ao seu AKV usando um Permission Model. Você pode conceder acesso usando uma Política de Acesso do Key Vault ou Azure RBAC.
Antes de conceder permissões de plano de dados, você deve primeiro atribuir a função de leitor ao seu principal de serviço. Isso é necessário para ambos os modelos de permissão (RBAC e política de acesso):
PowerShell
New-AzRoleAssignment ` -ObjectId "<SERVICE_PRINCIPAL_ID>" ` -RoleDefinitionName "Reader" ` -Scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT_NAME>"
Azure CLI
az role assignment create \ --assignee-object-id "<SERVICE_PRINCIPAL_ID>" \ --assignee-principal-type ServicePrincipal \ --role "Reader" \ --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT_NAME>"
Depois de atribuir a função de Leitor, conceda permissões de plano de dados usando um dos seguintes modelos de permissão:
Se você usar as políticas de acesso, faça o seguinte na UI do Azure para conceder ao Atlas acesso ao seu AKV.
Follow the Azure documentation to grant the
Microsoft.KeyVault/vaults/readpermission to your application in the Access Control (IAM) settings:Ao adicionar uma atribuição de função, selecione a função Key Vault Reader.
Ao selecionar os nós, escolha o aplicativo.
Na página Access Policies, crie uma política de acesso com o seguinte Key Permissions:
Conceda esta permissão...Para...obter
Leia os metadados sobre a chave armazenada no seu AKV.
Criptografar
Use as chaves em seu AKV para criptografar dados.
Descriptografar
Use as chaves em seu AKV para descriptografar dados que foram criptografados anteriormente com essas chaves.
Adicione o mesmo aplicativo que o principal e configure a política de acesso.
Siga a documentação do Azure para criar uma nova chave RSA. Abra os detalhes da versão da chave e copie o URI Key Identifier, que você precisa para configurar o Atlas nas próximas etapas.
Se o seu AKV usar RBAC, você deve fazer o seguinte nas configurações Access Control (IAM) da IU do Azure para conceder ao Atlas acesso ao seu AKV.
Conceda as seguintes permissões
actionsao aplicação.Conceda esta permissão...Para...Microsoft.KeyVault/vaults/readLer as propriedades de um Key Vault
Microsoft.KeyVault/vaults/keys/readLeia os metadados sobre a chave armazenada no seu AKV.
{ "permissions": [ { "actions": [ "Microsoft.KeyVault/vaults/read" "Microsoft.KeyVault/vaults/keys/read" ] } ... ] } Conceda as seguintes permissões
dataActionsao aplicação.Conceda esta permissão...Para...Microsoft.KeyVault/vaults/keys/readLeia os metadados sobre a chave armazenada no seu AKV.
Microsoft.KeyVault/vaults/keys/encrypt/actionUse as chaves em seu AKV para criptografar dados.
Microsoft.KeyVault/vaults/keys/decrypt/actionUse as chaves em seu AKV para descriptografar dados criptografados anteriormente com essas chaves.
{ "permissions": [ ... { "dataActions": [ "Microsoft.KeyVault/vaults/keys/read", "Microsoft.KeyVault/vaults/keys/encrypt/action", "Microsoft.KeyVault/vaults/keys/decrypt/action" ] } ] }
Próximos passos
Você pode usar uma chave gerenciada pelo cliente (CMK) do Azure Key Vault (AKV) em uma rede pública ou em private endpoints do Azure. Para saber mais, consulte o seguinte:
Se você usar Azure private endpoints, para aprender como os bloqueios de recursos do Azure podem bloquear a criação e a exclusão de private endpoints, consulte Azure Bloqueios de Recursos.
Observação
Se você habilitou a opção Criptografia em Repouso usando o Gerenciamento de Chaves do Consumidor, poderá executar operações de criptografia e descriptografia, enquanto pelo menos um nó ainda está disponível durante a interrupção.
Habilitar chaves gerenciadas pelo cliente para nós de pesquisa
By default, MongoDB and search processes run on the same nodes. With this architecture, customer-managed encryption applies to your database data, but it does not apply to search indexes.
Quando você habilita nós de pesquisa dedicados, os processos de pesquisa são executados em nós separados. Isso permite que você ative a criptografia de dados do nó de pesquisa, para que possa criptografar os dados do banco de dados e os índices de pesquisa com as mesmas chaves gerenciadas pelo cliente para uma cobertura abrangente de criptografia.
Os nós de pesquisa dedicados não são suportados em clusters do Atlas Infinite clusters durante a visualização pública.
Observação
Database nodes and Search Nodes use different encryption methods with the same customer-managed keys. Database nodes use the WiredTiger Encrypted Storage Engine, while Search Nodes use encryption at the disk level.
Importante
Este recurso está disponível em todos os provedores de KMS.