Gestión de usuarios y roles

IBM Cloud® Databases for Redis las instancias vienen con autenticación activada y utilizan el acceso integrado de Redis. control.They soporta múltiples usuarios y autenticación a través de listas de control de acceso(ACL).

Gestión de usuarios Redis

El usuario administrador

Al crear una nueva instancia en IBM Cloud, se te concede automáticamente acceso al usuario «Admin». También puede crear usuarios y credenciales adicionales para su instancia.

Para utilizar el usuario administrador para conectarse a la instancia, primero establezca la contraseña de administrador.

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 lista de recursos del IBM Cloud Panel de control. 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 CLICloud Databases para establecer la contraseña de admin.

Por ejemplo, para configurar la contraseña de administrador de tu instancia, utiliza 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 «Foundation Endpoint» que aparece en la sección «Detalles generales de la implementación» de tu servicio proporciona el URL de base para acceder a esta instancia 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"}` \

El usuario « default »

Databases for Redis ya no utiliza internamente el usuario default. En su lugar, las instancias Databases for Redis son gestionadas por el Cloud Databases ibm-user.

Si sus instancias utilizan actualmente el usuario default, es posible seguir haciéndolo. Sin embargo, el uso continuado del usuario default requiere un cambio de contraseña, lo que se espera que limite los permisos. Estas limitaciones de permiso son un cambio de comportamiento esperado como parte de una actualización de versión principal. En concreto, los siguientes permisos están restringidos para el usuario default:

  • config: el usuario de default no puede ver, añadir, actualizar o suprimir configuraciones de base de datos. El usuario default tampoco puede crear ni gestionar usuarios y roles de base de datos.
  • acl: el usuario default no puede crear nuevos usuarios.

Si piensa seguir utilizando el usuario predeterminado, asegúrese de probar a fondo sus aplicaciones después de actualizar la contraseña para comprobar la compatibilidad. Para obtener más información sobre la configuración de accesos y permisos en Redis, consulte la compatibilidad con ACL en Redis.

Para actualizar la contraseña de usuario de default, utilice un mandato como:

ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> default <NEW PASSWORD>

Para obtener más información, consulte Actualización a una nueva versión principal.

Gestión de roles de Redis

Control de acceso basado en roles (RBAC)

El control de acceso basado en roles (RBAC) le permite configurar el nivel de acceso que tiene cada usuario.

Databases for Redis actualmente da soporte a los roles siguientes:

  • El rol admin proporciona control completo y acceso a todos los mandatos y operaciones de administración.
  • El rol all proporciona acceso a admin, read y write, lo que proporciona a los usuarios un control completo sobre todos los mandatos y operaciones.
  • El rol read permite el acceso de sólo lectura a los mandatos. Los usuarios con este rol pueden ejecutar operaciones de lectura pero no pueden realizar operaciones de grabación.
  • El rol write permite acceso de sólo escritura a los mandatos. Los usuarios con este rol pueden ejecutar operaciones de escritura pero no pueden realizar operaciones de lectura.

Los mandatos de administración config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl log y acl help están disponibles para su uso en admin y all, pero no todos los demás mandatos acl y config.

Estos roles también se pueden combinar para configurar el nivel de acceso de un usuario.

Combinaciones de roles RBAC

Mandatos de inclusión de +

- excluye mandatos

+@ incluye categorías de mandatos

-@ excluye categorías de mandatos

  • admin + read: control admin completo con la capacidad de ejecutar operaciones de read.
  • admin + write: control admin completo con la capacidad de ejecutar operaciones de write.
  • admin + all: Simplifica a all, que incluye admin, read y write.
  • read + write: Los usuarios que tengan los roles « read » y « write » pueden realizar tanto las operaciones de « read » como las de « write », pero no tendrán privilegios administrativos.
  • read + all: Simplifica a all, que incluye admin, read y write.
  • write + all: Simplifica a all, que incluye admin, read y write.
  • admin + read + write: control admin completo con la capacidad de ejecutar operaciones read y write.
  • admin + read + all: Simplifica en all, que incluye admin, read y write.
  • admin + write + all: Simplifica en all, que incluye admin, read y write.
  • read + write + all: Simplifica en all, que incluye admin, read y write.
    • read- write: El usuario solo tendrá el rol « read » y solo podrá realizar operaciones de « read ».

Estas combinaciones proporcionan diferentes niveles de control de acceso. Elija la combinación que se alinea con sus requisitos específicos y consideraciones de seguridad.

Crear un usuario con roles RBAC a través de la API

Para crear un usuario utilizando roles RBAC, utilice el siguiente comando :

curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "username": "example-user",
             "password": "YourPassword123!"
           }
         }'

Para crear un usuario con rol por defecto, utilice el siguiente comando :

curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "username": "example-user",
             "password": "YourPassword123!"
           }
         }'

Para cambiar o actualizar un rol, utilice el siguiente comando :

curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "role": "+@read +@admin"
           }
         }'

Para cambiar la contraseña de un rol, utilice el siguiente comando :

curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "password": "NewSecurePassword456!"
           }
         }'

Para eliminar un usuario, utiliza el siguiente comando :

curl -X DELETE "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Accept: application/json"

Crear un usuario con roles RBAC a través de la CLI

Para crear un usuario utilizando roles RBAC, utilice el siguiente comando :

ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD> -r "<ROLE_STRING>"

Para -r USER_ROLE, utilice alguna combinación de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> para otorgar acceso.

Ejemplo:

ibmcloud cdb user-create \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  Password1234567890 \
  -r "+@read +@write"

Salida de ejemplo:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:49ec86e6-a2ac-4eb2-9c6b-48039c554f7e
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Creating user
Created At            2025-04-18T07:26:31Z
Status                running
Progress Percentage   0
...
Progress Percentage   66
...
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para crear un usuario con rol por defecto, utilice el siguiente comando :

ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD>

Ejemplo:

ibmcloud cdb user-create \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_user_default_role \
  Password1234567890

Salida de ejemplo:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:f225e6a3-3f4e-449d-bfce-a5e171719074
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Creating user
Created At            2025-04-18T07:47:27Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para cambiar o actualizar un rol, utilice el siguiente comando :

ibmcloud cdb redis user-set <CRN> <USERNAME> <ROLE_STRING>

Ejemplo:

ibmcloud cdb redis user-set \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  "+@all"

Salida de ejemplo:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:3a30ebc4-20d8-4004-8514-47c615276f81
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Updating user
Created At            2025-04-18T07:32:40Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para cambiar la contraseña de un rol, utilice el siguiente comando :

ibmcloud cdb user-password <CRN> <USERNAME> <NEW_PASSWORD>

Ejemplo:

ibmcloud cdb user-password \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  Password1234567890123

Salida de ejemplo:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:c254ccef-9e9c-4375-ae0f-4c78173f6278
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description           Updating user
Created At            2025-04-18T07:41:32Z
Status                running
Progress Percentage   0
Progress Percentage   66
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK

Para eliminar un rol, utiliza el siguiente comando :

ibmcloud cdb user-delete <CRN> <USERNAME>

Ejemplo:

ibmcloud cdb user-delete \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf

Salida de ejemplo:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:cc7effad-4fb2-4ae6-bd94-2d432b471e39
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description           Deleting user
Created At            2025-04-18T07:44:10Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK

Crear un usuario con roles RBAC a través de Terraform

Para crear una formación con un usuario utilizando roles RBAC, utilice el siguiente comando :

resource "ibm_database" "redis" {
  name              = "Databases for Redis-jt-DO-NOT-DELETE"
  plan              = "standard"
  location          = var.region
  service           = "databases-for-redis"
  version           = "7.2"
  service_endpoints = "public-and-private"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["redis", "user-mgmt"]
#   ##################################################
#   # 1. Create user with custom ACL role
#   ##################################################
  users {
    name     = "reader-user-with-role"
    password = "secureReadPass123456789"
    role     = "-@all +@read"
  }

Para role, utilice alguna combinación de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> para otorgar acceso.

Para crear una formación con un rol por defecto, utilice el siguiente comando :

resource "ibm_database" "redis" {
  name              = "Databases for Redis-jt-DO-NOT-DELETE"
  plan              = "standard"
  location          = var.region
  service           = "databases-for-redis"
  version           = "7.2"
  service_endpoints = "public-and-private"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["redis", "user-mgmt"]
  ##################################################
  # 2. Create user with default role
  ##################################################
  users {
    name     = "default-user-role"
    password = "defaultPass123456789"
    # no `role` field → default ACL applies
  }

Los usuarios pueden configurarse durante el aprovisionamiento inicial de Terraform con roles predeterminados o personalizados. Tras el aprovisionamiento, no se admiten operaciones como la creación, eliminación, actualización de contraseñas o cambio de funciones para mantener la coherencia y la seguridad.

Roles de Redis

El usuario Admin y todos los demás usuarios de la instancia tienen acceso completo al conjunto de mandatos Redis, excepto para el submandato config y acl-esto incluye el usuario Admin. config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl log y acl help son utilizables.

En Redis, cualquier usuario que crees, ya sea mediante credenciales de servicio, la CLI, la API o directamente en Redis, tiene el mismo acceso. No es posible utilizar Redis directamente para crear usuarios o roles con acceso limitado a claves específicas o rangos de claves, ya que estos no se propagan automáticamente en una implementación en clúster. Todos los demás medios para gestionar usuarios aseguran la propagación a través del clúster.

Creación de usuarios a través de la interfaz de usuario

  1. Vaya al panel de control de servicio del servicio.
  2. Selecciona «Credenciales de servicio ».
  3. Selecciona «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 utilizando 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. Haz clic en «Añadir» para configurar las nuevas credenciales. Se generan automáticamente un nombre de usuario, una contraseña y un usuario 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.

Creación de usuarios desde la API

El «Foundation Endpoint» que aparece en la «Descripción general» de tu servicio proporciona el URL de base para acceder a esta instancia a través de la API. Para crear y gestionar usuarios, utiliza la API base URL con el punto final « users »:

curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type} \
-H "Authorization: Bearer $APIKEY" \
-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.

Usuarios de uso interno

Hay cuatro usuarios reservados en tu instancia. Modificar estos usuarios provoca que tu instancia se vuelva inestable o inutilizable.

  • ibm-user- Un usuario interno de admin para gestionar la instancia y publicar métricas.
  • replication-user: la cuenta de usuario que se utiliza para la replicación.
  • sentinel-user: la cuenta de usuario que los centinelas utilizan para manejar la supervisión y las migraciones tras error.
  • admin- El usuario predeterminado que se proporciona para acceder a tu instancia.