IBM Cloud Docs
Gestión de usuarios y roles

Gestión de usuarios y roles

Los despliegues Databases for MongoDB vienen con la autenticación activada y utilizan MongoDB's control de acceso basado en funciones.

Añada usuarios en la interfaz de usuario en Credenciales de servicio, con el plugin de CLICloud Databases o la APICloud Databases.

El usuario administrador

Al suministrar un despliegue de Databases for MongoDB, se crea automáticamente un usuario de admin.

Establezca la contraseña de administrador antes de utilizarla para conectarse.

El usuario admin tiene los permisos siguientes:

  • userAdminAnyDatabase proporciona los mismos privilegios que userAdmin en todas las bases de datos excepto local y config. userAdminAnyDatabase proporciona el poder administrativo al usuario administrador. Proporciona la acción listDatabases en el clúster en su conjunto. Con userAdminAnyDatabase, cree y otorgue roles a cualquier otro usuario del despliegue, incluidos los roles incorporados de MongoDB. Por ejemplo, para supervisar el despliegue, utilice admin para iniciar sesión en el shell de mongo y otorgar el rol clusterMonitor a cualquier usuario (incluido él mismo). Utilice un mandato como:

    db.grantRolesToUser(
     "admin",
     [
       { role: "clusterMonitor", db: "admin" }
     ]
    )
    
  • readWriteAnyDatabase proporciona los mismos privilegios que readWrite en todas las bases de datos excepto local y config.

  • dbAdminAnyDatabase proporciona los mismos privilegios que dbAdmin en todas las bases de datos excepto local y config.

Establecer la contraseña de administrador en la interfaz de usuario

Establezca su contraseña de administrador a través de la interfaz de usuario seleccionando su instancia en la IBM Cloud Lista de recursos. A continuación, seleccione Configuración. A continuación, seleccione Cambiar contraseña de administrador de base de datos.

Configuración de la contraseña de administrador en la CLI

Utilice el mandato cdb user-password del plugin de IBM Cloud CLI Cloud Databases para establecer la contraseña de administrador.

Por ejemplo, para establecer la contraseña de administrador de su implantación, utilice el siguiente comando:

ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>

Configuración de la contraseña de administrador en la API

El punto final de Foundation que se muestra en la sección Detalles del despliegue del panel Descripción general de su servicio proporciona la URL base para acceder a este despliegue a través de la API. Utilícelo con el punto final Establecer contraseña de usuario especificada para establecer la contraseña de administrador.

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

Gestión de usuarios y funciones a través de la interfaz de usuario

  1. Vaya al panel de control del servicio.
  2. Pulse Credenciales de servicio para abrir la sección Credenciales de servicio.
  3. Pulse Nueva credencial.
  4. Elija un nombre descriptivo para la nueva credencial.
  5. (Opcional) Especifique si las nuevas credenciales utilizan un punto final público o privado. Utilice { "service-endpoints": "public" } / { "service-endpoints": "private" } en el campo Añadir parámetros de configuración en línea para generar series de conexión que utilicen el punto final especificado. El uso del punto final no se impone. Solo controla qué nombres de host hay en las series de conexión. De forma predeterminada, se generan puntos finales públicos.
  6. Haga clic en Añadir para aprovisionar las nuevas credenciales. Se genera automáticamente un nombre de usuario y una contraseña y un usuario de MongoDB asociado.

Las nuevas credenciales aparecen en la tabla y las series de conexión están disponibles como JSON en un campo de pulsar para copiar en Ver credenciales.

La creación de un usuario desde la CLI o la API no llena automáticamente las series de conexión de ese usuario en Credenciales de servicio. Si desea añadirlas, puede crear una nueva credencial con la información del usuario existente. Especifique el nombre de usuario y la contraseña en el campo JSON en Añadir parámetros de configuración en línea. Por ejemplo, {"existing_credentials":{"username":"Robert","password":"supersecure"}}. Básicamente, envías el nombre de usuario y la contraseña, y Credenciales de servicio genera las cadenas de conexión con las credenciales rellenadas.

Al generar credenciales de un usuario existente no se comprueba ni se crea dicho usuario.

A los usuarios que crea a través de Credenciales de servicio se les asignan los roles readWriteAnyDatabase y dbAdminAnyDatabase.

Si necesita que los usuarios creados desde Credenciales de servicio tengan un rol diferente, puede utilizar el usuario de administración para cambiar su rol.

Gestión de usuarios y roles a través de la CLI

A los usuarios que se crean en la CLI se les asignan los roles readWriteAnyDatabase y dbAdminAnyDatabase.

Si necesitas que los usuarios tengan un rol diferente, puedes utilizar el usuario admin para cambiar su rol.

Los usuarios que se crean directamente desde la CLI no aparecen en Credenciales de servicio, pero puede añadirlos.

  1. Si gestiona el servicio a través del plugin de CLICloud Databases, cree un nuevo usuario con cdb user-create. Por ejemplo, para crear un nuevo usuario para su despliegue, utilice el siguiente comando:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
  1. Cuando finalice la tarea, recupera las cadenas de conexión del nuevo usuario con el comando ibmcloud cdb deployment-connections.

  2. MongoDB centraliza los datos de usuario en la base de datos admin. Listar todos los usuarios y sus roles y permisos de base de datos en el shell de mongo utilizando el comando show users.

ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users

Gestión de usuarios y funciones a través de la API

A los usuarios que se crean en la API se les asignan los roles readWriteAnyDatabase y dbAdminAnyDatabase.

Si necesitas que los usuarios tengan un rol diferente, utiliza el usuario admin para cambiar su rol.

Los usuarios que se crean directamente desde la API no aparecen en Credenciales de servicio, pero puedes añadirlos.

El Punto final que se muestra en la sección Visión general del servicio proporciona el URL base para acceder a este despliegue a través de la API. Para crear y gestionar usuarios, utilice la URL base con el /users endpoint.

El mandato tiene el siguiente aspecto:

curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \

Para recuperar las series de conexión de un usuario, utilice el URL base con el punto final /users/{userid}/connections.

MongoDB-created

Si los usuarios y roles incorporados no se adaptan a tu entorno, crea usuarios y roles directamente en MongoDB. El usuario administrador del despliegue tiene la capacidad de crear cualquier rol o conjunto de privilegios para utilizarlos en el despliegue.

Los usuarios y roles que se crean directamente en MongoDB no aparecen en Credenciales de servicio y no están integrados con la cuenta de IBM Cloud o IAM.

El usuario ibm

Si utilizas el shell de mongo para listar los usuarios de tu despliegue, puede que notes un usuario que se llama ibm. El usuario ibm es la cuenta raíz interna que gestiona la réplica, las operaciones de clúster y otras funciones que garantizan la estabilidad del despliegue. Cambiar o eliminar al usuario ibm no es aconsejable e interrumpe la estabilidad de su despliegue.

Los usuarios de ops_manager para MongoDB Enterprise Edition

Ops Manager solo está disponible en los despliegues de Databases for MongoDB Enterprise Edition. El tipo de usuario ops_manager tiene permisos limitados. Para obtener más información, consulte la documentación deOps Manager.