MongoDB Enterprise es compatible con Kerberos. Kerberos es un protocolo de autenticación de red. El MongoDB Agent puede autenticarse en instancias de MongoDB que ejecuten Kerberos.
Requisitos previos
Configura la KDC para emitir tickets con un tiempo de vida mínimo de cuatro horas
Los tickets de Kerberos pueden autenticar a los usuarios durante un tiempo limitado. Debes configurar el Centro de Distribución de Claves (KDC) de Kerberos para emitir tickets que sean válidos por cuatro horas o más. El agente de MongoDB renueva el ticket periódicamente. El servicio KDC proporciona tickets de sesión y claves de sesión temporales a los usuarios y hosts.
Agregar Kerberos como mecanismo de autenticación para la implementación
El MongoDB Agent interactúa con las bases de datos de MongoDB en tu implementación como lo haría un usuario de MongoDB. Como resultado, debe configurar su implementación de MongoDB y el MongoDB Agent para admitir la autenticación.
Puedes especificar los mecanismos de autenticación de la implementación cuando añadas la implementación, o puedes editar la configuración de una implementación existente. Como mínimo, la implementación debe habilitar el mecanismo de autenticación que desea que utilice el MongoDB Agent. El agente de MongoDB puede utilizar cualquier mecanismo de autenticacióncompatible.
Para los fines de este tutorial, asegúrate de lo siguiente:
Tu implementación admite la autenticación de Kerberos y
El agente de MongoDB utiliza autenticación Kerberos.
Para aprender cómo habilitar la autenticación Kerberos, consulte Habilitar la autenticación Kerberos para su proyecto Cloud Manager.
Configure el MongoDB Agent host para usar Kerberos
Se deben instalar dos archivos relacionados con Kerberos en cualquier host que ejecute supervisión o copia de seguridad:
Cree o configure el krb5.conf Archivo de configuración de Kerberos.
PlataformaRuta por defectonotasLinux
/etc/krb5.confWindows
%WINDIR%\krb5.iniEsta es la ruta predeterminada para implementaciones de Kerberos que no se basan en Active Directory. Consulte la documentación de la implementación de Kerberos para su versión de Windows para averiguar dónde se almacena el archivo de configuración de Kerberos.
En sistemas Linux: asegúrese de que el binario de kinit esté ubicado en
/usr/bin/kinit.kinitobtiene o renueva un ticket de concesión de tickets de Kerberos, que autentica al Agente mediante Kerberos.
Procedimientos
Crea un principal de usuario de Kerberos para el MongoDB Agent
Cree o elija un Nombre Principal de Usuario de Kerberos (UPN) para el MongoDB Agent.
Un UPN se formatea en dos partes para que el servicio pueda ser identificado de manera única en todo el realm Kerberos:
Componente | Descripción |
|---|---|
Nombre del servicio | El nombre de un servicio que un host proporciona al realm de Kerberos, como |
Kerberos realm | Un conjunto de hosts y servicios administrados que comparten la misma base de datos de Kerberos. Según la convención de nomenclatura de Kerberos, el |
Ejemplo
En un dominio Kerberos establecido como EXAMPLE.COM, el MongoDB Agent configuraría su UPN en: mongodb-agent@EXAMPLE.COM
Genera un archivo keytab para el Kerberos UPN del Agente de MongoDB.
Genera un archivo keytab (*.keytab) para el MongoDB Agent UPN y cópialo al host que ejecuta el MongoDB Agent. Asegúrese de que el usuario del sistema operativo que ejecuta el MongoDB Agent sea el mismo usuario del sistema operativo que posee el archivo keytab.
Crear un usuario y asignar roles para el UPN de MongoDB Agent
Cuando la automatización está activada, Cloud Manager gestiona la autenticación de MongoDB Agent.
Para configurar Kerberos para la autenticación del MongoDB Agent, consulta Habilitar la autenticación Kerberos para tu proyecto de Cloud Manager.
Después de crear el UPN de Kerberos para el MongoDB Agent, crea un usuario de MongoDB en tu implementación que corresponda con el UPN del MongoDB Agent y asígnale privilegios.
Dónde crear el usuario de MongoDB depende de si utilizas o no autorización LDAP.
Nota
A partir de MongoDB 8.0, La autenticación y autorización LDAP está en desuso. La funcionalidad está disponible y seguirá funcionando sin cambios durante toda la vida útil de MongoDB 8. LDAP será retirado en una futura versión importante.
Para más detalles, consulta Obsolescencia de LDAP.
Si utiliza la autorizacion LDAP en su implementación de MongoDB, debe crear un usuario LDAP y un grupo LDAP para el MongoDB Agent en el servidor LDAP. Después de crear el usuario y grupo de LDAP, asigna el grupo de LDAP a un rol de MongoDB en la base de datos admin de tu implementación.
Advertencia
Al utilizar la autorizacion LDAP, no crear ningún usuario de MongoDB en la base de datos $external. MongoDB 3.4 y posteriores no se inician si existe un usuario MongoDB en la base de datos $external y la autorizacion LDAP está habilitada.
Para el usuario de MongoDB que representa el MongoDB Agent:
Crea un nuevo usuario LDAP en tu servidor LDAP con el nombre del UPN del MongoDB Agent.
Cree un grupo LDAP cuyo nombre coincida con el rol del MongoDB Agent.
Cree el rol del MongoDB Agent en su base de datos
admincon los permisos apropiados.Nota
Cuando se activa la automatización, Automation automáticamente crea un rol para el usuario del MongoDB Agent para la autenticación LDAP.
Asigne el usuario LDAP al grupo LDAP.
Tip
Para aprender a: | Ver |
|---|---|
Crear un usuario LDAP | Documentación para su implementación de LDAP. |
Crear un grupo LDAP | Documentación para su implementación de LDAP. |
Asigna los roles adecuados para el MongoDB Agent | |
Mapee un grupo LDAP y un rol de MongoDB | sección Roles LDAP de la página autorizacion LDAP en el manual de MongoDB. |
Configure la autorizacion LDAP sin automatización de Cloud Manager | Página autorizacion LDAP en el manual de MongoDB. |
Si no está utilizando la autorizacion LDAP, debe agregar el UPN del MongoDB Agent como usuario $external en la base de datos de su implementación de MongoDB. Sin autorización LDAP, MongoDB utiliza la base de datos $external para autenticar a un usuario con Kerberos.
Nota
Para descubrir los roles apropiados para el MongoDB Agent, accede a: Required Access for MongoDB Agent.
Desde mongosh, ejecuta los siguientes comandos para crear el usuario de MongoDB:
db.getSiblingDB("$external").createUser( { user : "<Kerberos Principal>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )