MongoDB Enterprise ofrece soporte para Kerberos. Kerberos es un protocolo de autenticación de red. El MongoDB Agent puede autenticarse en instancias de MongoDB que ejecuten Kerberos.
Requisitos previos
Configurar KDC para emitir tickets con una duración mínima 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 El servicio KDC proporciona tickets de sesión y claves de sesión temporales a 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 agregar la implementación, o puedes editar la configuración para 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:
Su implementación admite la autenticación 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 archivo de configuración Kerberos5 krb.conf.
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 deusuario (UPN) de Kerberos para el agente de MongoDB.
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 Kerberos. Según la convención de nomenclatura de Kerberos, el |
Ejemplo
En un dominio Kerberos establecido EXAMPLE.COM como, el agente MongoDB establecerí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 se activa la automatización, Cloud Manager administra la autenticación del agente MongoDB.
Para configurar Kerberos para la autenticación del agente MongoDB, consulte Habilitar la autenticación Kerberos para su 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 al Agente de MongoDB:
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 agente MongoDB en su base de datos
admincon los permisos adecuados.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 LDAP. |
Crear un grupo LDAP | Documentación para su implementación LDAP. |
Asigna los roles adecuados para el MongoDB Agent | |
Asignar 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" } ] } )