Nota
Esta característica no está disponible para ninguna de las siguientes implementaciones:
Clústeres gratuitos
Clústeres Flex
Para obtener más información, consulta Límites.
Atlas admite la autenticación sin secretos para usar Azure Key Vault (AKV) con cifrado en reposo (EAR). Con este modelo, no necesitas proporcionar a Atlas credenciales estáticas de larga duración (ID de inquilino, ID de cliente y Secreto de cliente). En su lugar, autoriza un principal de servicio gestionado por Atlas en tu arrendatario de Azure, y Atlas se autentica en AKV utilizando tokens de acceso OAuth 2.0 de corta duración que emite Azure Active Directory (Azure AD).
Nota
El Modelo de Responsabilidad Compartida de MongoDB Atlas define los deberes complementarios de MongoDB y sus clientes en el mantenimiento de un entorno de datos seguro y resiliente. Bajo este marco, MongoDB gestiona la seguridad y la integridad operativa de la plataforma subyacente, mientras que los clientes son responsables de la configuración, gestión y políticas de datos de sus implementaciones específicas. Para obtener un desglose detallado de la propiedad en materia de seguridad y excelencia operativa, consulta el Modelo de Responsabilidad Compartida.
Este enfoque:
Elimina la necesidad de crear, almacenar y rotar secretos de cliente en Atlas.
Centraliza el control de acceso completamente en Azure mediante RBAC de Azure o políticas de acceso de Key Vault.
Preserva el comportamiento existente de EAR para tus clústeres y aplicaciones. Solo el mecanismo de autenticación cambia
Secretless EAR depende de Azure AD y Azure Key Vault como frontera de seguridad. Atlas no almacena secretos gestionados por el cliente reutilizables y en su lugar utiliza tokens emitidos por Azureen tiempo de ejecución. El acceso se aplica usando permisos de mínimo privilegio y puede eliminar los permisos de Azure para revocarlos inmediatamente.
Atlas utiliza la asignación directa de roles a un principal de servicio gestionado por Atlas para un modelo de autenticación sencillo y seguro.
Requisitos previos
Para habilitar claves gestionadas por el cliente con AKV para un Proyecto de MongoDB, es necesario tener:
Un clúster M10 o más grande.
La cuenta de Azure y la llave de cifrado en su AKV.
Para aprender cómo configurar estos componentes de Azure, consulta 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:
Registrar un Service Principal empresarial en tu tenant. Este requisito previo requiere permisos de Microsoft Entra ID 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, consulta Inicio rápido: Añadir una aplicación empresarial.
Acceso a la clave Key Vault utilizando una de las siguientes opciones:
Azure RBAC (en el ámbito de Key Vault o de clave)
Acceso de Propietario de Proyecto en Atlas para el proyecto en el que deseas habilitar el Cifrado en reposo.
Considerations
Para usar una clave gestionada por el cliente almacenada en AKV para EAR, el Principal de Servicio gestionado por Atlas debe tener permiso para realizar operaciones criptográficas en la clave específica de Key Vault.
Los permisos clave requeridos incluyen:
getencryptdecrypt
Debe delimitar los permisos lo más estrechamente posible y concederlos utilizando una de las siguientes opciones:
Azure RBAC (en el ámbito de Key Vault o de clave)
Para obtener más información, consulta Inicio rápido: Añadir 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, debes:
Crear un Principal de servicio de Azure administrado por Atlas.
Otorga acceso de Principal de servicio a la clave de Key Vault.
Configura EAR para usar el Principal de servicio.
Cree una entidad de servicio de Azure administrada por Atlas.
Crea un Principal de Servicio de Azure en tu inquilino para la aplicación Azure propiedad de Atlas y regístralo en Atlas usando la API de Acceso al Proveedor de la Nube. Atlas devuelve un roleId que se utiliza al habilitar EAR.
Atlas utiliza la siguiente identidad de aplicación de Azure:
atlasAzureAppId: 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Crea o localiza el Service Principal de Atlas.
Si ya existe un Principal del Servicio para la aplicación Atlas, ejecuta el siguiente comando para localizarlo:
az ad sp list --filter "appId eq '9efedfcc-2eca-4b27-a613-0cad1e114cb7'"
Si no existe, ejecuta el siguiente comando para crearlo:
az ad sp create --id 9efedfcc-2eca-4b27-a613-0cad1e114cb7
Desde la salida, copie el campo id, que es la ID de objeto de Service Principal que Atlas requiere.
Registra el Principio de Servicio en Atlas.
Utilice la API de Acceso a proveedores de nube:
Endpoint:
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 gestiona el Service Principal y devuelve un id valor, que es el roleId requerido cuando se configura EAR.
Otorgar permisos a AKV
Autoriza al Principal de Servicio administrado por Atlas para realizar operaciones criptográficas en la clave de Key Vault utilizada para EAR.
Puedes conceder acceso utilizando Azure RBAC o políticas de acceso de Key Vault.
Conceder acceso mediante Azure RBAC
Para conceder acceso usando Azure RBAC:
Asigna 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"
Asigna 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 usar un rol personalizado, siempre y cuando otorgue permisos clave equivalentes.
Otorgar acceso usando políticas de acceso de Key Vault
Si tu clave Key Vault usa políticas de acceso, ejecuta el siguiente comando para otorgar permisos 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
Configura el cifrado en reposo para utilizar la autenticación secreta
Después de registrar y autorizar el Principal de Servicio en Azure, actualiza tu configuración de EAR con el roleId que la API de Acceso al Proveedor de la Nube devolvió.
En Atlas, ve a la página Advanced de tu 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.
Configura tu método de autenticación.
Atlas admite dos métodos de autenticación para AKV:
Principal del servicio (recomendado): Use un principal de servicio gestionado por Atlas específico de su proyecto para autenticarse en AKV (se aborda la autenticación sin secretos aquí).
Credenciales estáticas: proporcionar credenciales gestionadas por el cliente. Para obtener más información, consulta Administrar claves de cliente con Azure Key Vault: Red pública o Administrar claves de cliente con Azure Key Vault mediante nodos privados.
Introduce el Key Vault Configuration.
ID de suscripción | Introduce el Subscription ID del Key Vault. |
Nombre del grupo de recursos | Ingrese el Resource Group nombre de un Azure Resource Group que contenga el Key Vault. |
Nombre del Key Vault | Introduzca el nombre de Key Vault. Asegúrese de que el Key Vault tenga las políticas de acceso necesarias. Para obtener más información, consulta Acceso requerido. |
Nota
No puedes modificar la configuración de AKV aquí después de habilitar y configurar conexiones de nodos privados en tu AKV.
Introduce el Encryption Key.
Identificador clave | Introduce la dirección URL completa para la clave creada en Key Vault. IMPORTANTE: El identificador de clave debe proporcionarse en el Azure general formato completo: Puedes agregar |
(Opcional) Configure conexiones de nodos privados a su AKV.
Para aprender más, consulta Habilitar y configurar conexiones de nodos privados para un Proyecto
Verifica la configuración de red.
Si configuró Atlas usando la API de administración de Atlas para comunicarse con AKV usando Azure Private Link para garantizar que todo el tráfico entre Atlas y Key Vault se realice a través de las interfaces de red privadas de Azure, Atlas establece el estado de Require Private Networking en Active. Si el estado es Inactive, puedes, opcionalmente, completar los pasos para Habilitar y configurar conexiones de nodos privados para un Proyecto si deseas que Atlas use conexiones de nodos privados para tu AKV.
Haz clic Saveen.
Atlas muestra un banner en la consola de Atlas durante el proceso de cifrado.
Endpoint:
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 tu proyecto ya utiliza credenciales estáticas (tenantId, clientId, secret), puedes migrar sin tiempo de inactividad del clúster.
Cree un Service Principal gestionado por Atlas.
Conceda permisos para Key Vault.
Actualizar la configuración EAR con el nuevo
roleId.
Si la validación falla, Atlas sigue utilizando credenciales estáticas.
Si la validación es exitosa, Atlas remueve las credenciales estáticas almacenadas y el roleId se convierte en la fuente de verdad para la autenticación.
Si tu clúster utiliza Redes Privadas, Atlas valida el acceso al Key Vault de manera asíncrona 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 al Key Vault después de aplicar la configuración.
Antes de aplicar el parche roleId, asegúrese de que todos los permisos de Key Vault estén configurados correctamente. Una configuración incorrecta del acceso puede ocasionar fallos de validación en los nodos de datos, lo que podría acabar por interrumpir las operaciones de EAR y llevar a la desconexión de los clústeres.
Antes de aplicar el parche a EAR, verifique que su Service Principal disponga de los permisos necesarios para Key Vault.
Verificar la asignación de roles RBAC de Azure
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"
Confirma que el rol asignado otorga permisos clave, como get, encrypt y decrypt.
Verifique las políticas de acceso al jueves de claves.
Ejecuta el siguiente comando:
az keyvault show \ --name "$KEY_VAULT_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.accessPolicies"
Confirma que el Principal de servicio esté listado e incluya los permisos de clave requeridos.