Gerencie Chaves de Consumidor com o Azure Key Vault em Endpoints Privados
Nesta página
- Considerações
- Caso de uso
- Benefícios
- Limitações
- Pré-requisitos
- Procedimentos
- Habilitar chaves gerenciadas pelo cliente para um projeto
- Habilitar e configurar conexões de endpoint privado para um projeto
- Habilitar o gerenciamento de chaves do cliente para um Atlas cluster
- Desativar chaves gerenciadas pelo consumidor para um projeto
- Rejeitar ou remover conexão de endpoint privado
- Desativar conexões de endpoint privado para um projeto
- Revogar Acesso a uma Chave de Encriptação
- Gire seu Identificador de Chave Azure
- Tópicos relacionados
Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Instâncias sem servidor
M0
clustersM2/M5
clustersClusters 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.
Esta página descreve como usar a API de administração do Atlas 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.
Considerações
Antes de ativar a encryption at rest usando o AKV em endpoints privados, revise os seguintes casos de uso, benefícios, limitações e pré-requisitos.
Caso de uso
Suponha que seu sistema do Atlas esteja em um único provedor de serviços de nuvem. Agora você tem um requisito de que todo o acesso ao seu AKV ocorra sobre a infraestrutura de rede privada do seu provedor de nuvem. Esta página orienta você pelas etapas para habilitar conexões de endpoint privadas para seu projeto Atlas .
Benefícios
Você pode usar a API de administração do Atlas para permitir que o Atlas configure a criptografia em repouso com o AKV usando endpoints privados. Isso permite que todo o tráfego para o AKV passe por um conjunto de endpoints privados e evite expor o AKV à Internet pública ou a endereços IP públicos. Ele elimina a necessidade de manter endereços IP permitidos e, ao mesmo tempo, melhora a segurança dos dados ao manter todo o tráfego do AKV dentro da rede privada do Azure.
Limitações
O Atlas não oferece suporte à criptografia em repouso usando CMK em endpoints privados para multinuvem . Se você habilitar a criptografia em descanso usando CMK sobre o Azure Private Link em um projeto existente com clusters de multinuvem , o Atlas desabilitará os clusters de multinuvem em seu projeto.
O Atlas não permite Encryption at Rest usando CMK em Endpoints Privados para projetos no estado INACTIVE
.
O Atlas não oferece suporte ao acesso AKV por redes privadas para clusters da Amazon Web Services ou da Google Cloud Platform .
Pré-requisitos
Para habilitar chaves gerenciadas pelo cliente com AKV para um projeto MongoDB , você deve:
Use um cluster M10 ou superior.
Tenha as credenciais da conta Azure e do Key Vault, e o identificador de chave para a chave de criptografia em seu AKV.
Para a conta, você deve ter o ID do cliente , o ID do locatário e o segredo.
Para o Key Vault, você deve ter a ID da assinatura , o nome do grupo de recursos e o nome do Key Vault.
Para saber como configurar estes componentes do Azure, consulte a Documentação do Azure do .
O Atlas utiliza estes recursos ao habilitar encryption at rest para um cluster no projeto Atlas.
Se o seu App registrations utilizar políticas de acesso condicional, você deverá permitir solicitações de endereços IP do Plano de Controle do Atlas . Você não precisa habilitar o acesso público ao cofre de chaves.
Observação
Você deve registrar Microsoft.Network em seus fornecedores de recursos de assinatura do Azure . Para saber mais, consulte a documentação do Azure.
Procedimentos
Habilitar chaves gerenciadas pelo cliente para um projeto
Você deve habilitar a CMK para um projeto antes de habilitá-la em um cluster nesse projeto. Você pode habilitar CMK para um projeto a partir da UI do Atlas e da API de Administração do Atlas .
No Atlas, váGo para a Advanced página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Advanced sob o título Security.
A página Avançado é exibida.
Digite sua Account Credentials.
ID do cliente | Insira o Client ID (ou Application ID) do aplicação do Azure. O Active Directory Application deve ter a função de Azure key Vault Reader atribuída a ele. |
ID do Inquilino | Insira o Tenant ID (ou Directory ID) do locatário do Active Directory. |
Segredo | Insira um dos segredos de cliente não expirados do aplicativo associados ao locatário do Active Directory. |
Ambiente Azure | Selecione a nuvem Azure em que seu inquilino do Active Directory se localiza. |
Insira o Key Vault Credentials.
ID de Inscrição | Insira o Subscription ID do Key Vault. |
Nome do Grupo de Recursos | Insira o nome Resource Group de um Azure Resource Group contendo o Key Vault. |
Nome do Key Vault | Insira o nome do Key Vault. O grupo de recursos do Key Vault deve corresponder ao Resource Group e o Key Vault deve ter as seguintes políticas de acesso:
|
Observação
Você não pode modificar as credenciais do AKV aqui depois de habilitar e configurar conexões de endpoints privados para o AKV.
Insira o Encryption Key.
Identificador de chave | Insira a URL completa da chave criada no Key Vault. IMPORTANTE: o identificador de chave deve ser fornecido no formato geral do Azure:
|
(Opcional) Configure conexões de endpoint privadas para o seu AKV.
Para saber mais, consulte Habilitar e configurar conexões de endpoint privado para um projeto
Verifique as configurações de rede.
Se você configurou o Atlas utilizando a API de Administração do Atlas para se comunicar com AKV utilizando o Azure Private Link para garantir que todo o tráfego entre o Atlas e o Key Vault ocorra através das interfaces de rede privada do Azure, o Atlas definirá o status do Require Private Networking como Active. Se o status for Inactive, você poderá, opcionalmente, concluir as etapas para Habilitar e configurar conexões de endpoint privado para um projeto se quiser que o Atlas use conexões de endpoint privado para seu AKV.
Observação
O recurso Encryption at rest usando AKV sobre Private Endpoints está disponível por solicitação. Para solicitar essa funcionalidade para seus Atlas , entre em contato com o gerente de conta.
Envie uma PATCH
solicitação para o encryptionAtRest
endpoint.
Exemplo
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" } }'
Observação
Você não pode modificar as seguintes configurações depois de habilitar e configurar conexões de endpoint privadas para o seu AKV:
keyVaultName
resourceGroupName
subscriptionID
Verifique a configuração da Encryption at rest usando a CMK para seu projeto.
Para verificar sua solicitação para habilitar e configurar a criptografia em descanso usando as chaves que você gerencia usando o AKV, envie uma solicitação GET
para o endpoint encryptionAtRest
.
Exemplo
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 } }
Na resposta, enabled
é true
se o seu projeto foi habilitado com sucesso para Encryption at Rest usando CMK. Você pode configurar redes privadas para garantir que todo o tráfego entre o Atlas e o Key Vault ocorra nas interfaces de rede privadas do Azure. Para saber mais, consulte Habilitar e configurar conexões de endpoint privadas para um projeto.
Habilitar e configurar conexões de endpoint privado para um projeto
Você pode habilitar e configurar endpoints privados somente usando a API de administração do Atlas . Para habilitar redes privadas e configurar um endpoint privado em seu AKV, você deve fazer o seguinte:
Ative a rede privada.
Envie uma solicitação PATCH
para o endpoint e defina o valor do sinalizador requirePrivateNetworking
como true
.
Exemplo
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2023-01-01+json" \ --header "Content-Type: application/vnd.atlas.2023-01-01+json" \ --include \ --request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/" \ --data ' { "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "632ff709-32a8-48a3-8224-30d2386fadaf", "enabled": true, "keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "requirePrivateNetworking": true, "resourceGroupName": "string", "secret": "string", "subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5", "tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b" } }'
Crie um endpoint privado.
Use a API de administração do Atlas para criar um endpoint privado para se comunicar com seu AKV.
Envie uma solicitação do POST
para o endpoint com a região do Azure na qual você deseja que o Atlas crie o endpoint privado. Você deve enviar uma solicitação separada para cada região na qual deseja que o Atlas crie um endpoint privado.
Exemplo
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2023-01-01+json" \ --header "Content-Type: application/vnd.atlas.2023-01-01+json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints" \ --data ' { "regionName": "US_CENTRAL" }'
Depois de aprovar o endpoint privado, as seguintes restrições se aplicam:
O Atlas cria todos os novos clusters somente nas regiões com endpoints privados aprovados.
O Atlas distribui nós adicionais para clusters existentes apenas nas regiões com endpoints privados aprovados.
Aprove as conexões de endpoint privado para o seu AKV.
Você pode usar a UI do Azure , CLI, ou Terraform para aprovar as conexões de endpoint privado.
Depois da aprovação, o Atlas migra automaticamente todos os clusters para os quais você habilitou chaves gerenciadas pelo cliente, incluindo os clusters existentes que permitem conexões usando a Internet pública, para usar apenas a conexão de endpoints privados. Opcionalmente, você pode desativar o acesso público à Internet ao seu AKV depois de migrar seus clusters para usar a conexão de endpoint privado. Todos os novos clusters do Atlas no Azure usarão, por padrão, apenas a conexão de endpoint privada ativa.
Verifique o status da sua solicitação.
Para verificar o status do endpoint privado, envie uma solicitação de GET
para o endpoint encryptionAtRest
.
Exemplo
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2023-01-01+json" \ --header "Content-Type: application/vnd.atlas.2023-01-01+json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints"
{ "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "results": [ { "cloudProvider": "AZURE", "errorMessage": "string", "id": "24-hexadecimal-digit-string", "regionName": "string", "status": "INITIATING", "privateEndpointConnectionName": "string" } ], "totalCount": 0 }
Depois de aprovar o endpoint privado, pode levar até três minutos para o Atlas refletir o status atual do seu endpoint privado. O endpoint privado pode ter um dos seguintes status:
INICIANDO | Indica que o Atlas está no processo de criação do endpoint privado. |
PENDING_ACEPTance | Indica que o endpoint privado ainda não foi aprovado. Você deve aceitar o endpoint privado para permitir que o Atlas o utilize. |
Ativo | Indica que o endpoint privado está aprovado e o Atlas pode ou está usando-o. |
PENDING_RECREATION | Indica que o endpoint privado foi rejeitado ou removido e o Atlas está no processo de criação de um novo endpoint privado na mesma região. |
Falhou | Indica que a criação do endpoint privado falhou. |
Excluindo | Indica que o Atlas está em processo de exclusão do endpoint privado. |
Depois de ativar a criptografia em repouso usando CMK (Over Private Networking) para seu projeto, você poderá ativar a encryption at rest usando CMK para cada cluster do Atlas em seu projeto.
Habilitar o gerenciamento de chaves do cliente para um Atlas cluster
Após Habilitar Chaves Gerenciadas pelo Cliente para um Projeto, você deve habilitar o gerenciamento de chave do cliente para cada cluster do Atlas que contém dados que você deseja criptografar. Se você configurou conexões de endpoint privadas para seu projeto do Atlas , o Atlas migrará automaticamente todos os clusters para os quais você já habilitou chaves gerenciadas pelo cliente, incluindo clusters existentes que permitem conexões utilizando a Internet pública, para utilizar somente a conexão do endpoint privado.
Observação
Você deve ter a role Project Owner
para habilitar o gerenciamento de chaves do cliente para clusters nesse projeto.
Para novos clusters, alterne a configuração Gerenciar suas próprias chaves de encriptação para Yes, se ainda não estiver habilitado, quando você criar o cluster.
Para clusters existentes:
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Habilitar criptografia de cluster.
Expanda o painel Additional Settings.
Alterne a configuração Manage your own encryption keys para Yes.
Verifique o status da configuração Require Private Networking para seu cluster.
Se você configurou a criptografia em repouso usando CMK (Over Private Networking) para Atlas no nível do projeto, o status é Active. Se você não configurou nenhuma conexão de endpoint privada para seu projeto, o status é Inactive.
Desativar chaves gerenciadas pelo consumidor para um projeto
Para desabilitar a CMK para um projeto, você deve primeiro remover todos os endpoints privados associados ao projeto, independentemente de seu estado. O Atlas exibe um erro se você tentar desabilitar a CMK para um projeto associado a endpoints privados ativos.
Após remover todos os endpoints privados de um projeto, você deve desabilitar o gerenciamento de chaves do cliente em cada cluster do projeto antes de desabilitar o recurso para o projeto.
Aviso
Não desative nem exclua nenhuma chave AKV usada por qualquer cluster em seu projeto Atlas antes de desativar o gerenciamento de chaves do cliente no projeto Atlas . Se o Atlas não conseguir acessar uma chave AKV , todos os dados criptografados pela chave ficarão inacessíveis.
Rejeitar ou remover conexão de endpoint privado
Para remover um endpoint privado, envie uma DELETE
solicitação de para o endpoint da API de administração do Atlas e especifique a ID do projeto e do endpoint privado que você deseja excluir. Você pode recuperar o ID do endpoint privado que deseja excluir enviando uma GET
solicitação de para o Serviço de retorno de um endpoint privado da API do Atlas para um endpoint do fornecedor.
Exemplo
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-10-23+json" \\ or a different version of the Atlas Admin API --header "Content-Type: application/json" \ --include \ --request DELETE "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints/{endpointId}" \ --data ' { "cloudProvider": "AZURE", "regions": [ "string" ] }'
Quando você exclui um endpoint privado usando a API de administração do Atlas , o endpoint privado transita para o status DELETING
enquanto o Atlas exclui o endpoint privado.
Se você remover ou rejeitar um endpoint privado ativo da interface do usuário do Azure , o Atlas tentará recriar automaticamente um novo endpoint privado na mesma região. Você pode verificar o status do endpoint privado enviando uma solicitação de GET
para a API de administração do Atlas encryptionAtRest
obter todos os endpoints ou obter um endpoint, para o qual você deve especificar o ID do endpoint privado no caminho.
Exemplo
Retornar todos os endpoints privados de um projeto
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-10-23+json" \\ or a different version of the Atlas Admin API --header "Content-Type: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints/"
Enquanto o Atlas tenta criar um novo endpoint privado, o status do endpoint privado que você rejeitou ou removeu transições para PENDING_RECREATION
e o novo endpoint que o Atlas tenta criar está no estado INITIATING
. Você deve aprovar o novo endpoint privado após ele ser criado.
Desativar conexões de endpoint privado para um projeto
Para desativar as conexões de endpoint privado para um projeto, você deve primeiro remover todos os endpoints privados associados ao projeto, independentemente do estado. O Atlas não desabilita as conexões de endpoint privado para um projeto se o projeto estiver associado a endpoints privados ativos.
Após remover todos os endpoints privados de um projeto, você pode desabilitar as conexões de endpoints privados do projeto usando a API de administração do Atlas . Para desabilitar uma conexão de endpoint privado, envie uma solicitação de PATCH
para o endpoint com o valor do sinalizador booleano requirePrivateNetworking
definido como false
.
Exemplo
{ "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", "secret": "string", "subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5", "tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b" } }
Revogar Acesso a uma Chave de Encriptação
Você pode revogar o acesso do Atlas a uma chave de criptografia de dentro do AKV para congelar seus dados. O Atlas pausa automaticamente seus clusters quando você revoga o acesso à chave de criptografia.
Gire seu Identificador de Chave Azure
Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Instâncias sem servidor
M0
clustersM2/M5
clustersClusters flexíveis
Para saber mais,consulte Limites.
Antes de começar, saiba mais sobre como girar seu identificador de chave Azure.
Você deve criar uma nova chave no AKV associado ao seu projeto Atlas . O procedimento a seguir documenta como girar o Identificador de Chave do projeto Atlas especificando um novo identificador de chave no Atlas.
No Atlas, váGo para a Advanced página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Advanced sob o título Security.
A página Avançado é exibida.
Atualize as credenciais do Azure.
Clique em Azure Key Vault se o seletor Azure Key Vault ainda não estiver ativo.
Clique em Encryption Key se o seletor Encryption Key ainda não estiver ativo.
Insira o Identificador de Chave Azure no campo Key Identifier.
Inclua a URL completa no novo identificador de chave de criptografia. Por exemplo:
https://mykeyvault.vault.azure.net/keys/AtlasKMSKey/a241124e3d364e9eb99fbd3e11124b23 Importante
A chave de criptografia deve pertencer ao Key Vault configurado para o projeto. Clique na seção Key Vault para exibir o Cofre de Chave configurado atualmente para o projeto.
Clique em Update Credentials.
O Atlas exibe um banner na UI do Atlas durante o processo de rotação do Identificador de Chave. Não exclua ou desative o identificador de chave original até que suas alterações sejam implementadas.
Se o cluster usar Fazer Backup do Cluster, não exclua ou desabilite o Identificador de chave original até validar que nenhum snapshot usou essa chave para criptografia.
Tópicos relacionados
Para ativar a Criptografia em Repouso usando seu gerenciamento de chaves ao implantar um Atlas cluster, consulte Gerenciar Suas Próprias Chaves de Criptografia.
Para habilitar a Criptografia em Repouso usando o Gerenciamento de Chaves para um Atlas cluster existente, consulte Habilitar Criptografia em Repouso.
Para saber mais sobre Criptografia em Repouso usando seu Gerenciamento de Chaves no Atlas, consulte Criptografia em Repouso usando o Gerenciamento de Chaves do Consumidor.
Para saber mais sobre a criptografia em repouso MongoDB, consulte Criptografia em repouso na documentação do servidor MongoDB.
Para saber mais sobre encryption at rest com backups em nuvem, consulte Mecanismo de armazenamento e criptografia de backup em nuvem.