Los roles otorgan a los usuarios acceso a los recursos de MongoDB. De forma predeterminada, MongoDB proporciona algunos roles integrados, pero si estos no pueden describir el conjunto de privilegios deseado, se pueden crear roles personalizados.
Al crear un rol, se especifica la base de datos a la que se aplica. Ops Manager almacena los roles personalizados en todas las instancias de MongoDB de su proyecto de Ops Manager, pero identifica de forma única cada rol mediante la combinación del nombre de la base de datos y el nombre del rol. Si existe una base de datos con ese nombre en varias implementaciones de su proyecto de Ops Manager, el rol se aplica a cada una de esas bases de datos. Si crea un rol en... admin
base de datos, la función se aplica a todas las admin bases de datos en la implementación.
Los roles consisten en privilegios que otorgan acceso a acciones específicas sobre recursos específicos. En la mayoría de las bases de datos, un recurso es la base de datos o una colección, pero en la base de datos admin, un recurso puede ser todas las bases de datos, todas las colecciones con un nombre determinado en todas las bases de datos o todas las implementaciones.
Un rol puede heredar privilegios de otros roles en su base de datos. Un rol en la base de datos admin puede heredar privilegios de roles en otras bases de datos.
Los roles de MongoDB son independientes de Ops Manager roles.
Considerations
Usuarios y roles administrados
Cualquier usuario o rol que elija administrar en un proyecto de Ops Manager tiene su
Synced valor establecido en Yes y se sincronizan con todas las implementaciones del proyecto.
Cualquier usuario o rol que no elija administrar en un proyecto de Ops Manager tiene su valor Synced establecido en No y solo existe en sus respectivas implementaciones de MongoDB.
Nota
Si alterna Synced a OFF después de la importación, se eliminarán todos los usuarios o roles que cree.
Usuarios y roles consistentes
Si aplicas un conjunto coherente de usuarios y roles en tu proyecto, Ops Manager sincroniza estos usuarios y roles en todas las implementaciones de ese proyecto. Actíva Enforce Consistent Set para decidir si deseas gestionar un único conjunto de usuarios y roles:
Enforce Consistent Set es YES
En un proyecto administrado, Ops Manager otorga a todos los usuarios y roles acceso a todas las implementaciones. Todas las implementaciones que gestiona Ops Manager tienen el mismo conjunto de usuarios y roles de MongoDB.
Ops Manager limita el acceso a los usuarios y roles donde se configuran de Synced a Yes. Ops Manager elimina de las implementaciones de su proyecto todos los usuarios y roles que no administra su proyecto.
Enforce Consistent Set es NO
En un proyecto administrado, Ops Manager permite que cada implementación use su propio conjunto de usuarios y roles de MongoDB. Ops Manager no necesita administrar estos usuarios y roles de MongoDB. Para hacerlo, debe conectarse directamente a la implementación de MongoDB.
Ops Manager otorga a los usuarios y roles de MongoDB administrados en los que usted configura de Synced a Yes acceso a todas las implementaciones administradas.
Ops Manager limita el acceso de los usuarios y roles de MongoDB no administrados, donde usted establece Synced a No, a las implementaciones específicas de esos usuarios y roles.
Nota
Enforce Consistent Set El valor predeterminado es NO.
Para saber cómo la importación de implementaciones de MongoDB puede afectar la administración de usuarios y roles, consulte Automatización y configuraciones de seguridad actualizadas tras la importación.
Requisito previo
El control de acceso de MongoDB debe estar habilitado para poder aplicar roles. Se pueden crear funciones antes de habilitar el control de acceso o después, pero no entran en vigor hasta que se habilite el control de acceso.
Crear un rol personalizado de MongoDB
Navegue a la MongoDB Roles pestaña para su implementación.
Si aún no se muestra, se debe seleccionar la organización que contiene el proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no se muestra, se debe seleccionar el proyecto deseado en el menú Projects de la barra de navegación.
Si aún no se muestra, haga clic en Deployment en la barra lateral.
Haz clic en la pestaña Security.
Haga clic en MongoDB Roles.
En el Identifier campo, ingrese la base de datos en la que desea definir el rol e ingrese un nombre para el rol.
Un rol se aplica a la base de datos en la que está definido y puede otorgar acceso hasta el nivel de colección. La combinación del nombre del rol y su base de datos lo identifica de forma única. Complete los campos Identifier para cumplir con los métodos de autenticación y autorización que utiliza:
Si no se utiliza la autenticación ni la autorización por LDAP, se debe escribir el nombre de la base de datos en el campo database Identifier y el nombre que se desea para el rol en el campo name Identifier.
Si utiliza la autenticación LDAP, pero no la autorización LDAP, escriba
$externalen el campo database Identifier y el nombre que desea para el rol en el campo name Identifier.Si utiliza cualquier método de autenticación con autorización LDAP, escriba
adminen el campo database Identifier y el DN del grupo LDAP en el campo name Identifier.Ejemplo
En su servidor LDAP, creó un grupo LDAP con el nombre completo
CN=DBA,CN=Users,DC=example,DC=com. Si desea crear un rol de administrador de bases de datos (DBA) en Ops Manager vinculado a este grupo LDAP, escribaadminen el campo database Identifier yCN=DBA,CN=Users,DC=example,DC=comen el campo name Identifier.
Seleccione los privilegios que desea otorgar al nuevo rol.
Se pueden conceder privilegios de dos maneras:
Otorgar a un rol los privilegios de otro rol.
Para otorgar a un nuevo rol todos los privilegios de uno o más roles existentes, selecciónelos en el Inherits From campo. Este campo proporciona una lista desplegable que incluye tanto los roles integrados de MongoDB como cualquier rol personalizado que ya haya creado.
Añade un privilegio directamente.
Para otorgar privilegios específicos al rol, haga clic en ADD PRIVILEGES FOR A RESOURCE.
En el campo Resource, especifique el recurso al que se aplicará el rol. Seleccione la base de datos en el menú desplegable. Para especificar toda la base de datos, deje el campo en blanco. Para especificar una colección, introduzca su nombre. Si el recurso está en la base de datos admin, puede hacer clic en ADMIN y aplicar el rol fuera de la base de datos admin.
En la Available Privileges sección, seleccione las acciones que desea aplicar. Para obtener una descripción de cada acción, consulte "Acciones de privilegios" en el manual de MongoDB.
Editar un rol personalizado
Puedes cambiar los privilegios de un rol personalizado. No puedes cambiar su nombre ni su base de datos.
Navegue a la MongoDB Roles pestaña para su implementación.
Si aún no se muestra, se debe seleccionar la organización que contiene el proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no se muestra, se debe seleccionar el proyecto deseado en el menú Projects de la barra de navegación.
Si aún no se muestra, haga clic en Deployment en la barra lateral.
Haz clic en la pestaña Security.
Haga clic en MongoDB Roles.
Agregar o quitar privilegios para ese rol.
Se pueden conceder privilegios de dos maneras:
Otorgar a un rol los privilegios de otro rol.
Para otorgar a un nuevo rol todos los privilegios de uno o más roles existentes, selecciónelos en el Inherits From campo. Este campo proporciona una lista desplegable que incluye tanto los roles integrados de MongoDB como cualquier rol personalizado que ya haya creado.
Añade un privilegio directamente.
Para otorgar privilegios específicos al rol, haga clic en ADD PRIVILEGES FOR A RESOURCE.
En el campo Resource, especifique el recurso al que se aplicará el rol. Seleccione la base de datos en el menú desplegable. Para especificar toda la base de datos, deje el campo en blanco. Para especificar una colección, introduzca su nombre. Si el recurso está en la base de datos admin, puede hacer clic en ADMIN y aplicar el rol fuera de la base de datos admin.
En la Available Privileges sección, seleccione las acciones que desea aplicar. Para obtener una descripción de cada acción, consulte "Acciones de privilegios" en el manual de MongoDB.
Para eliminar un rol heredado, haga clic en el x junto al rol. Para eliminar un privilegio, haga clic en el icono de la papelera junto al privilegio.
Ver privilegios para un rol
Para ver los privilegios de un rol, haga clic en Deployment, luego en la pestaña Security, luego en Roles y luego en view privileges junto al rol.
Cada privilegio asocia un recurso con un conjunto de acciones de privilegio. A todos los roles se les asigna una base de datos. Cada rol integrado se asigna a admin o a todas las bases de datos.
Eliminar un rol personalizado
Navegue a la MongoDB Roles pestaña para su implementación.
Si aún no se muestra, se debe seleccionar la organización que contiene el proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no se muestra, se debe seleccionar el proyecto deseado en el menú Projects de la barra de navegación.
Si aún no se muestra, haga clic en Deployment en la barra lateral.
Haz clic en la pestaña Security.
Haga clic en MongoDB Roles.
Haga clic Confirm & Deploy en para implementar sus cambios.
Nota
Si Enforce Consistent Set se establece en Yes, el rol personalizado también se elimina de los procesos de MongoDB gestionados. Si Enforce Consistent Set se establece en No, debes remover el rol manualmente con el comando dropRole.