Nota
Esta característica no está disponible para ninguna de las siguientes implementaciones:
M0Clústeres gratuitosClústeres Flex
Para obtener más información, consulte Límites.
Atlas admite la autenticación sin secreto para usar Azure Key Vault (AKV)con cifrado en reposo (EAR). Con este modelo, no es necesario proporcionar a Atlas credenciales estáticas de larga duración (ID de inquilino, ID de cliente y Secreto de cliente). En su lugar, se autoriza una entidad de servicio de Azure administrada por Atlas en el inquilino de Azure, y Atlas se autentica en AKV 2 mediante0 tokens de acceso OAuth. de corta duración emitidos por Azure Active Directory(Azure AD).
Este enfoque:
Elimina la necesidad de crear, almacenar y rotar secretos de clientes en Atlas.
Centraliza el control de acceso completamente dentro de Azure mediante políticas de acceso de Azure RBAC o Key Vault.
Conserva el comportamiento actual de EAR para sus clústeres y aplicaciones. Solo cambia el mecanismo de autenticación.
EAR sin secretos se basa en Azure AD y Azure Key Vault como límite de seguridad. Atlas no almacena secretos reutilizables administrados por el cliente, sino que utiliza tokens emitidos por Azure en tiempo de ejecución. El acceso se aplica mediante permisos con privilegios mínimos, y puede eliminar los permisos de Azure para revocarlos inmediatamente.
Atlas utiliza la asignación directa de roles a un principal de servicio administrado por Atlas para lograr un modelo de autenticación más simple y seguro.
Requisitos previos
Para habilitar claves administradas por el cliente con AKV para un proyecto MongoDB, debe tener:
Un clúster M10 o más grande.
La cuenta de Azure y la clave de cifrado en su AKV.
Para obtener información sobre cómo configurar estos componentes de Azure, consulte la Documentación de Azure.
Atlas utiliza estos recursos al habilitar el cifrado en reposo para un clúster en el proyecto Atlas.
Permisos en Azure para:
Registre una entidad de servicio empresarial en su inquilino. Este requisito requiere permisos de ID de Microsoft Entra para agregar o administrar aplicaciones empresariales, como Administrador de aplicaciones, Administrador de aplicaciones en la nube o Administrador global.
Para obtener más información, consulte Inicio rápido: Agregar una aplicación empresarial.
Acceda a la clave de Key Vault mediante una de las siguientes opciones:
Azure RBAC (en el almacén de claves o en el ámbito de la clave)
Acceso de propietario del proyecto en Atlas para el proyecto para el que desea habilitar el cifrado en reposo.
Considerations
Para utilizar una clave administrada por el cliente almacenada en AKV para EAR, el principal de servicio administrado por Atlas debe tener permiso para realizar operaciones criptográficas en la clave de Key Vault específica.
Los permisos clave necesarios incluyen:
getencryptdecrypt
Debe limitar los permisos lo más posible y otorgarlos mediante una de las siguientes opciones:
Azure RBAC (en el almacén de claves o en el ámbito de la clave)
Para obtener más información, consulte Inicio rápido: Agregar una aplicación empresarial.
Configurar la autenticación sin secretos de EAR AKV
Para configurar el cifrado en reposo (EAR) con autenticación sin secretos, debe:
Cree una entidad de servicio de Azure administrada por Atlas.
Otorgue al principal de servicio acceso a su clave de Key Vault.
Configurar EAR para utilizar la entidad de servicio.
Crear una entidad de servicio de Azure administrada por Atlas
Cree una entidad de servicio de Azure en su inquilino para la aplicación de Azure propiedad de Atlas y regístrela con Atlas mediante la API de acceso a proveedores de nube. Atlas devuelve un roleId que se usa al habilitar EAR.
Atlas utiliza la siguiente identidad de aplicación de Azure:
atlasAzureAppId: 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Obtenga su identificador de inquilino deAzure.
Ejecute el siguiente comando para recuperar el ID del inquilino del recurso en el que existirá el principal de servicio:
az account show --query tenantId -o tsv
Cree o localice la entidad de servicio Atlas.
Si ya existe una entidad de servicio para la aplicación Atlas, ejecute el siguiente comando para localizarla:
az ad sp list --filter "appId eq '9efedfcc-2eca-4b27-a613-0cad1e114cb7'"
Si no existe, ejecute el siguiente comando para crearlo:
az ad sp create --id 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Desde la salida, copie el campo id, que es el ID del objeto principal de servicio que requiere Atlas.
Registrar el principal de servicio con Atlas.
Utilice la API de acceso del proveedor de nube:
Punto final:
POST /api/atlas/v2/groups/{groupId}/cloudProviderAccess
Ejemplo de cuerpo de solicitud:
{ "providerName": "AZURE", "tenantId": "<azure-tenant-id>", "servicePrincipalId": "<service-principal-object-id>", "atlasAzureAppId": "9efedfcc-2eca-4b27-a613-0cad1e114cb7" }
Atlas aprovisiona y administra la entidad de servicio y devuelve un id valor, que es el roleId requerido cuando se configura EAR.
Otorgar permisos a AKV
Autorizar al principal de servicio administrado por Atlas a realizar operaciones criptográficas en la clave de Key Vault utilizada para EAR.
Puede otorgar acceso mediante políticas de acceso de Azure RBAC o Key Vault.
Otorgar acceso mediante Azure RBAC
Para conceder acceso mediante Azure RBAC:
Asigne el rol de Lector para que Atlas pueda leer los metadatos de Key Vault.
Ejecuta el siguiente 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"
Asignar un rol criptográfico como Usuario criptográfico de Key Vault.
Ejecuta el siguiente 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"
Nota
También puedes utilizar un rol personalizado, siempre que otorgue permisos de clave equivalentes.
Otorgar acceso mediante políticas de acceso a Key Vault
Si su Key Vault utiliza políticas de acceso, ejecute el siguiente comando para otorgar permisos de clave directamente:
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 el cifrado en reposo para usar la autenticación sin secretos
Después de registrar y autorizar la entidad de servicio en Azure, actualice la configuración de EAR con el roleId que devolvió la API de acceso del proveedor de nube.
En Atlas, vaya a la Advanced Página para su proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
En la barra lateral, haga clic en Advanced.
La página Avanzada se muestra.
Configure su método de autenticación.
Atlas admite dos métodos de autenticación para AKV:
Principal de servicio (recomendado): utilice un principal de servicio administrado por Atlas específico para su proyecto para autenticarse en AKV (la autenticación sin secretos se cubre aquí).
Credenciales estáticas: Proporcione credenciales administradas por el cliente. Para obtener más información, consulte Administrar claves de cliente con Azure Key Vault a través de una red pública o Administrar claves de cliente con Azure Key Vault a través de puntos de conexión privados.
Introduce el Key Vault Configuration.
ID de suscripción | Introduzca el Subscription ID del Key Vault. |
Nombre del grupo de recursos | Introduzca el nombre Resource Group de un Azure Resource Group que contenga el Key Vault. |
Nombre de la bóveda de claves | Introduzca el nombre del almacén de claves. Asegúrese de que cuente con las políticas de acceso necesarias. Para obtener más información,consulte Acceso requerido. |
Nota
No puedes modificar la configuración de AKV aquí después de habilitar y configurar conexiones de puntos finales privados a tu AKV.
Introduce el Encryption Key.
Identificador de clave | Introduzca la URL completa de la clave creada en Key Vault. IMPORTANTE: El identificador de clave debe proporcionarse en el formato general completo de Azure: |
(Opcional) Configure conexiones de puntos finales privados a su AKV.
Para aprender más, consulta Habilitar y configurar conexiones de nodos privados para un Proyecto
Verifique la configuración de la red.
Si configuró Atlas mediante la API de administración de Atlas para comunicarse con AKV mediante Azure Private Link y garantizar que todo el tráfico entre Atlas y Key Vault se realice a través de las interfaces de red privada de Azure, Atlas establece el Require Private Networking estado Active en. Si el estado Inactive es, puede, opcionalmente, completar los pasos para habilitar y configurar conexiones de punto de conexión privado para un proyecto si desea que Atlas use conexiones de punto de conexión privado para su AKV.
Punto final:
PATCH /api/atlas/v2/groups/{groupId}/encryptionAtRest
Ejemplo de cuerpo de solicitud:
{ "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" } }
Después de esta actualización, Atlas se autentica en AKV utilizando tokens de Azure AD de corta duración en lugar de credenciales estáticas.
Migrar desde credenciales estáticas
Si su proyecto ya usa credenciales estáticas (tenantId, clientId, secret), puede migrar sin tiempo de inactividad del clúster.
Cree una entidad de servicio administrada por Atlas.
Otorgar permisos a Key Vault.
Parchee la configuración EAR con el nuevo
roleId.
Si la validación falla, Atlas continúa usando credenciales estáticas.
Si la validación tiene éxito, Atlas elimina las credenciales estáticas almacenadas y roleId se convierte en la fuente de verdad para la autenticación.
Si su clúster utiliza redes privadas, Atlas valida el acceso a Key Vault de forma asincrónica desde los nodos de datos.
La validación no se completa inmediatamente cuando se acepta la solicitud
PATCH.Los nodos de datos validan el acceso a Key Vault después de aplicar la configuración.
Antes de aplicar el parche roleId a EAR, asegúrese de que todos los permisos de Key Vault estén configurados correctamente. Un acceso mal configurado puede provocar fallos de validación en los nodos de datos, lo que podría interrumpir las operaciones de EAR y provocar el cierre del clúster.
Antes de aplicar un parche a EAR, verifique que su entidad de servicio tenga los permisos de Key Vault necesarios.
Verificar las asignaciones de roles de Azure RBAC
Ejecuta el siguiente 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 el rol asignado otorgue permisos clave como get, encrypt y decrypt.
Verificar las políticas de acceso a Key Vault
Ejecuta el siguiente comando:
az keyvault show \ --name "$KEY_VAULT_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.accessPolicies"
Confirme que el principal de servicio esté incluido y que incluya los permisos de clave necesarios.