Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
M0Clusters gratuitosClusters flexíveis
Para saber mais,consulte Limites.
O Atlas oferece suporte à autenticação sem segredo para usar o Azure Key Vault (AKV) com Encryption at Rest (EAR). Com esse modelo, você não precisa fornecer ao Atlas credenciais estáticas de longa duração (ID do locatário, ID do cliente e segredo do cliente). Em vez disso, você autoriza um Azure Service Principal gerenciado pelo Atlas em seu locatário do Azure e o Atlas autentica no AKV usando 2 0 tokens de acesso OAuth. de curta duração que o Azure Active Directory (Azure AD) emite.
Essa abordagem:
Elimina a necessidade de criar, armazenar e girar segredos de cliente no Atlas.
Centraliza o controle de acesso inteiramente no Azure usando as políticas de acesso do Azure RBAC ou do Key Vault.
Preserva o comportamento do EAR existente para seus clusters e aplicativos. Somente o mecanismo de autenticação muda
O Secretless EAR depende do Azure AD e do Azure Key Vault como limite de segurança. O Atlas não armazena segredos reutilizáveis gerenciados pelo cliente e, em vez disso, usa tokens emitidos pelo Azure no tempo de execução. O acesso é imposto usando permissões de privilégio mínimo e você pode remover as permissões do Azure para revogá-las imediatamente.
O Atlas usa a atribuição direta de função a um Service Principal gerenciado pelo Atlas para um modelo de autenticação mais simples e seguro.
Pré-requisitos
Para habilitar chaves gerenciadas pelo cliente com AKV para um projeto MongoDB , você deve ter:
Um cluster M10 ou superior.
A conta do Azure e a chave de criptografia em seu AKV.
Para saber como configurar estes componentes do Azure, consulte a Documentação do Azure.
O Atlas utiliza estes recursos ao habilitar encryption at rest para um cluster no projeto Atlas.
Permissões no Azure para:
Registre um Enterprise Service Principal em seu locatário. Esse pré-requisito requer permissões do Microsoft Entra ID para adicionar ou gerenciar aplicativos corporativos, como administrador de aplicativos, administrador de aplicativos de nuvem ou administrador global.
Para saber mais, consulte Início rápido: adicionar um aplicação empresarial .
Acesse a chave do Key Vault usando uma das seguintes opções:
Azure RBAC (no Key Vault ou no escopo da chave)
Acesso de proprietário do projeto no Atlas para o projeto para o qual você deseja habilitar a encryption at rest.
Considerações
Para usar uma chave gerenciada pelo cliente armazenada no AKV for EAR, o Service Principal gerenciado pelo Atlas deve ter permissão para realizar operações criptográficas na chave específica do Key Vault.
As permissões de chave necessárias incluem:
getencryptdecrypt
Você deve ter o escopo das permissões o mais restritivo possível e concedê-las usando uma das seguintes opções:
Azure RBAC (no Key Vault ou no escopo da chave)
Para saber mais, consulte Início rápido: adicionar um aplicação empresarial .
Configurar a autenticação sem segredo EAR AKV
Para configurar a Encryption at Rest (EAR) com autenticação sem segredo, você deve:
Crie um Azure Service Principal gerenciado pelo Atlas.
Conceda ao Service Principal acesso à sua chave do Key Vault.
Configure o EAR para usar o Service Principal.
Criar um Azure Service Principal gerenciado pelo Atlas
Crie um Azure Service Principal em seu locatário para o aplicação Azure de propriedade do Atlas e registre-o no Atlas usando a API Cloud Provider Access. O Atlas retorna um roleId que você usa quando habilita o EAR.
O Atlas utiliza a seguinte identidade de aplicação Azure:
atlasAzureAppId: 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Obtenha sua ID de locatário doAzure.
Execute o seguinte comando para recuperar a ID do locatário do recurso no qual o Service Principal existirá:
az account show --query tenantId -o tsv
Crie ou localize o Atlas Service Principal.
Se já existir um Service Principal para o aplicação Atlas , execute o seguinte comando para localizá-lo:
az ad sp list --filter "appId eq '9efedfcc-2eca-4b27-a613-0cad1e114cb7'"
Se não existir, execute o seguinte comando para criá-lo:
az ad sp create --id 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Na saída, copie o campo id , que é o ID do objeto principal de serviço que o Atlas exige.
Registre a Principal de Serviços no Atlas.
Use a API de acesso ao fornecedor de nuvem:
Endpoint:
POST /api/atlas/v2/groups/{groupId}/cloudProviderAccess
exemplo de corpo da solicitação :
{ "providerName": "AZURE", "tenantId": "<azure-tenant-id>", "servicePrincipalId": "<service-principal-object-id>", "atlasAzureAppId": "9efedfcc-2eca-4b27-a613-0cad1e114cb7" }
O Atlas provisiona e gerencia o Service Principal e retorna um id valor de, que é o roleId necessário quando você configura o EAR.
Conceder permissões ao AKV
Autorize o Service Principal de Serviços gerenciado pelo Atlas a executar operações criptográficas na chave do Key Vault usada para EAR.
Você pode conceder acesso usando as políticas de acesso do Azure RBAC ou do Key Vault.
Conceder acesso usando o Azure RBAC
Para conceder acesso usando o Azure RBAC:
Atribua o role de Leitor para que o Atlas possa ler os metadados do Key Vault.
Execute o seguinte comando:
az role assignment create \ --assignee-object-id "$SERVICE_PRINCIPAL_OBJECT_ID" \ --assignee-principal-type ServicePrincipal \ --role "Reader" \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.KeyVault/vaults/$KEY_VAULT_NAME"
Atribua uma função criptográfica, como usuário de criptografia do Key Vault.
Execute o seguinte comando:
az role assignment create \ --assignee-object-id "$SERVICE_PRINCIPAL_OBJECT_ID" \ --assignee-principal-type ServicePrincipal \ --role "Key Vault Crypto User" \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.KeyVault/vaults/$KEY_VAULT_NAME"
Observação
Você também pode usar um função personalizada, desde que ele conceda permissões de chave equivalentes.
Conceder acesso usando políticas de acesso ao Key Vault
Se o seu Key Vault usar políticas de acesso, execute o seguinte comando para conceder permissões de chave diretamente:
az keyvault set-policy \ --subscription "$SUBSCRIPTION_ID" \ --resource-group "$RESOURCE_GROUP" \ --name "$KEY_VAULT_NAME" \ --object-id "$SERVICE_PRINCIPAL_OBJECT_ID" \ --key-permissions get encrypt decrypt wrapKey unwrapKey
Configurar Encryption at rest para usar autenticação sem segredo
Depois de registrar e autorizar o Service Principal no Azure, atualize sua configuração do EAR com o roleId que a API do Cloud Provider Access retornou.
No Atlas, vá Advanced para a 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 Database & Network Access sob o título Security.
Na barra lateral, clique em Advanced.
A página Avançado é exibida.
Configure seu método de autenticação.
O Atlas suporta dois métodos de autenticação para AKV:
Principal de serviço (recomendado): Use uma entidade de serviço gerenciada pelo Atlas específica para seu projeto para autenticar no AKV (autenticação sem segredo abordada aqui).
Credenciais estáticas: forneça credenciais gerenciadas pelo cliente. Para saber mais, consulte Gerenciar chaves do cliente com o Azure Key Vault em uma rede pública ou Gerenciar chaves do cliente com o Azure Key Vault em endpoints privados.
Key Vault ConfigurationInsira.
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. Certifique-se de que o Key Vault tenha as políticas de acesso necessárias. Para saber mais, consulte Acesso necessário. |
Observação
Você não pode modificar a configuração do AKV aqui depois de habilitar e configurar conexões de endpoints privados para o AKV.
Encryption KeyInsira.
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.
Endpoint:
PATCH /api/atlas/v2/groups/{groupId}/encryptionAtRest
exemplo de corpo da solicitação :
{ "azureKeyVault": { "enabled": true, "roleId": "<atlas-managed-roleId>", "subscriptionID": "<subscription-id>", "resourceGroupName": "<resource-group>", "keyVaultName": "<key-vault-name>", "keyIdentifier": "https://<vault>.vault.azure.net/keys/<key>/<version>", "azureEnvironment": "AZURE" } }
Após esta atualização, o Atlas autentica no AKV utilizando tokens de curta duração do Azure AD em vez de credenciais estáticas.
Migrar de Credenciais Estáticas
Se o seu projeto já utilizar credenciais estáticas (tenantId, clientId, secret), você poderá migrar sem tempo de inatividade do cluster.
Crie um Service Principal gerenciado pelo Atlas.
Conceda permissões ao Key Vault.
Corrija a configuração do EAR com o novo
roleId.
Se a validação falhar, o Atlas continuará usando credenciais estáticas.
Se a validação for bem-sucedida, o Atlas removerá as credenciais estáticas armazenadas e o roleId se tornará a fonte da verdade para a autenticação.
Se o cluster usar rede privada, o Atlas validará o acesso ao Key Vault de forma assíncrona a partir dos nós de dados.
A validação não é concluída imediatamente quando a solicitação
PATCHé aceita.Os nós de dados validam o acesso ao Key Vault depois que a configuração é aplicada.
Antes de corrigir o EAR com roleId, certifique-se de que todas as permissões do Key Vault estejam configuradas corretamente. O acesso mal configurado pode resultar em falhas de validação nos nós de dados, o que pode eventualmente interromper as operações do EAR e levar ao desligamento do cluster.
Antes de corrigir o EAR, verifique se o Service Principal tem as permissões necessárias do Key Vault.
Verificar as atribuições de role do Azure RBAC
Execute o seguinte comando:
az role assignment list \ --assignee "$SERVICE_PRINCIPAL_OBJECT_ID" \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.KeyVault/vaults/$KEY_VAULT_NAME"
Confirme que a função atribuída concede permissões de chave, como get, encrypt e decrypt.
Verificar políticas de acesso ao Key Vault
Execute o seguinte comando:
az keyvault show \ --name "$KEY_VAULT_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.accessPolicies"
Confirme se o Service Principal está listado e inclui as permissões de chave necessárias.