Gestion des utilisateurs et des rôles

IBM Cloud® Databases for Redis sont livrées avec l'authentification activée et utilisent l'accès intégré de Redis control.They pour prendre en charge plusieurs utilisateurs et l'authentification grâce à la prise en charge de la liste de contrôle d'accès(ACL).

Gestion des utilisateurs Redis

Administrateur

Lorsque vous créez une nouvelle instance sur IBM Cloud, vous bénéficiez automatiquement d'un accès au compte « Admin ». Vous pouvez également créer des utilisateurs et des identifiants supplémentaires pour votre instance.

Pour utiliser l'utilisateur Admin pour vous connecter à votre instance, définissez d'abord le mot de passe d'administrateur.

Définition du mot de passe administrateur dans l'interface utilisateur

Définissez votre mot de passe administrateur via l'interface utilisateur en sélectionnant votre instance dans la liste des ressources dans le tableau de bord IBM Cloud Tableau de bord. Sélectionnez ensuite Paramètres. Sélectionnez ensuite Modifier le mot de passe de l'administrateur de base de données.

Définition du mot de passe administrateur dans le CLI

Utilisez la commande cdb user-password à partir du plug-in d'interface de ligne de commande Cloud Databases pour définir le mot de passe admin.

Par exemple, pour définir le mot de passe administrateur de votre instance, utilisez la commande suivante :

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

Configuration du mot de passe administrateur via l'API

Le point de terminaison « Foundation » qui apparaît dans la section « Détails du déploiement » de la vue d'ensemble de votre service fournit l' URL de base permettant d'accéder à cette instance via l'API. Utilisez-le avec le noeud final Définir le mot de passe de l'utilisateur spécifié pour définir le mot de passe de l'administrateur.

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"}` \

L'utilisateur « default »

Databases for Redis n'utilise plus l'utilisateur default en interne. Au lieu de cela, les instances Databases for Redis sont gérées par le site Cloud Databases ibm-user.

Si vos instances utilisent actuellement l'utilisateur default, il est possible de continuer à le faire. Cependant, l'utilisation continue de l'utilisateur default nécessite un changement de mot de passe, ce qui devrait limiter les autorisations. Ces limitations d'autorisation sont un changement de comportement attendu dans le cadre d'une mise à niveau de version majeure. Plus précisément, les autorisations suivantes sont restreintes pour l'utilisateur default:

  • config: l'utilisateur default ne peut pas afficher, ajouter, mettre à jour ou supprimer des configurations de base de données. L'utilisateur default ne peut pas non plus créer ou gérer des utilisateurs et des rôles de base de données.
  • acl: l'utilisateur default ne peut pas créer de nouveaux utilisateurs.

Si vous prévoyez de continuer à utiliser l'utilisateur par défaut, assurez-vous de tester vos applications de manière approfondie après avoir mis à jour le mot de passe pour assurer la compatibilité. Pour plus d'informations sur la configuration de l'accès et des permissions dans Redis, voir le support ACL dans Redis.

Pour mettre à jour le mot de passe de l'utilisateur default, utilisez une commande telle que la suivante:

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

Pour plus d'informations, voir Mise à niveau vers une nouvelle version majeure.

Gestion des rôles Redis

Contrôle d'accès basé sur les rôles

Le contrôle d'accès basé sur les rôles (RBAC) vous permet de configurer le niveau d'accès de chaque utilisateur.

Databases for Redis prend actuellement en charge les rôles suivants:

  • Le rôle admin offre un contrôle complet et un accès à toutes les commandes et opérations d'administration.
  • Le rôle all permet d'accéder à admin, read et write, ce qui permet aux utilisateurs de contrôler pleinement toutes les commandes et opérations.
  • Le rôle read permet un accès en lecture seule aux commandes. Les utilisateurs dotés de ce rôle peuvent exécuter des opérations de lecture mais ne peuvent pas effectuer d'opérations d'écriture.
  • Le rôle write autorise l'accès en écriture seule aux commandes. Les utilisateurs ayant ce rôle peuvent exécuter des opérations d'écriture mais ne peuvent pas effectuer d'opérations de lecture.

Les commandes d'administration config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl log et acl help peuvent être utilisées dans admin et all, mais toutes les autres commandes acl et config ne le sont pas.

Ces rôles peuvent également être combinés pour configurer le niveau d'accès d'un utilisateur.

Combinaisons de rôles RBAC

Commandes d'inclusion +

Commandes d'exclusion -

+@ inclut les catégories de commande

-@ exclut les catégories de commande

  • admin + read: contrôle admin complet avec la possibilité d'exécuter des opérations read.
  • admin + write: contrôle admin complet avec la possibilité d'exécuter des opérations write.
  • admin + all: Simplifie all, qui inclut admin, read et write.
  • read + write: Les utilisateurs disposant à la fois des rôles « read » et « write » peuvent effectuer les opérations « read » et « write », mais ils ne disposeront pas de privilèges d'administration.
  • read + all: Simplifie all, qui inclut admin, read et write.
  • write + all: Simplifie all, qui inclut admin, read et write.
  • admin + read + write: contrôle admin complet avec la possibilité d'exécuter des opérations read et write.
  • admin + read + all: Simplifie all, qui inclut admin, read et write.
  • admin + write + all: Simplifie all, qui inclut admin, read et write.
  • read + write + all: Simplifie all, qui inclut admin, read et write.
    • read- write: l'utilisateur disposera uniquement du rôle « read » et ne pourra effectuer que les opérations de type « read ».

Ces combinaisons fournissent différents niveaux de contrôle d'accès. Choisissez la combinaison qui correspond à vos exigences spécifiques et à vos considérations de sécurité.

Création d'un utilisateur avec des rôles RBAC via l'API

Pour créer un utilisateur à l'aide des rôles RBAC, utilisez la commande suivante :

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!"
           }
         }'

Pour créer un utilisateur avec le rôle par défaut, utilisez la commande suivante :

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!"
           }
         }'

Pour modifier ou mettre à jour un rôle, utilisez la commande suivante :

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"
           }
         }'

Pour modifier le mot de passe d'un rôle, utilisez la commande suivante :

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!"
           }
         }'

Pour supprimer un utilisateur, utilisez la commande suivante :

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"

Création d'un utilisateur avec des rôles RBAC via l'interface de ligne de commande

Pour créer un utilisateur à l'aide des rôles RBAC, utilisez la commande suivante :

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

Pour -r USER_ROLE, utilisez une combinaison de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> pour accorder l'accès.

Exemple :

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"

Exemple de sortie :

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

Pour créer un utilisateur avec le rôle par défaut, utilisez la commande suivante :

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

Exemple :

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

Exemple de sortie :

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

Pour modifier ou mettre à jour un rôle, utilisez la commande suivante :

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

Exemple :

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"

Exemple de sortie :

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

Pour modifier le mot de passe d'un rôle, utilisez la commande suivante :

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

Exemple :

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

Exemple de sortie :

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

Pour supprimer un rôle, utilisez la commande suivante :

ibmcloud cdb user-delete <CRN> <USERNAME>

Exemple :

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

Exemple de sortie :

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

Création d'un utilisateur avec des rôles RBAC via Terraform

Pour créer une formation avec un utilisateur utilisant des rôles RBAC, utilisez la commande suivante :

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"
  }

Pour role, utilisez une combinaison de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> pour accorder l'accès.

Pour créer une formation avec un rôle par défaut, utilisez la commande suivante :

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
  }

Les utilisateurs peuvent être configurés lors du provisionnement initial de Terraform avec des rôles par défaut ou personnalisés. Après le provisionnement, les opérations telles que la création, la suppression, la mise à jour des mots de passe ou la modification des rôles ne sont pas prises en charge afin de maintenir la cohérence et la sécurité.

Rôles Redis

L'utilisateur Admin et tous les autres utilisateurs de votre instance disposent d'un accès complet à l'ensemble de commandes Redis, à l'exception de la sous-commande config et acl, qui inclut l'utilisateur Admin. config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl log et acl help sont utilisables.

Dans Redis, tout utilisateur que vous créez, que ce soit via les identifiants de service, l'interface de ligne de commande (CLI), l'API ou directement sur Redis, dispose des mêmes droits d'accès. Redis ne permet pas, en soi, de créer des utilisateurs ou des rôles dont l'accès est limité à des clés ou à des plages de clés spécifiques, car ceux-ci ne sont pas propagés automatiquement dans un déploiement en cluster. Tous les autres modes de gestion des utilisateurs assurent la propagation dans le cluster.

Création d'utilisateurs via l'interface utilisateur

  1. Accédez au tableau de bord de votre service.
  2. Sélectionnez « Informations d'identification du service ».
  3. Sélectionnez « Nouveaux identifiants ».
  4. Choisissez un nom descriptif pour vos nouvelles données d'identification.
  5. (Facultatif) Indiquez si les nouvelles données d'identification utilisent un noeud final public ou privé. Utilisez { "service-endpoints": "public" } / { "service-endpoints": "private" } dans la zone Ajouter des paramètres de configuration en ligne pour générer des chaînes de connexion à l'aide du noeud final indiqué. L'utilisation du noeud final n'est pas imposée. Elle permet juste de contrôler les noms d'hôte mentionnés dans les chaînes de connexion. Les noeuds finaux publics sont générés par défaut.
  6. Cliquez sur « Ajouter » pour configurer les nouveaux identifiants. Un nom d'utilisateur, un mot de passe et un utilisateur associé sont générés automatiquement.

Les nouvelles données d'identification apparaissent dans la table et les chaînes de connexion sont disponibles au format JSON dans une zone de type Cliquer pour copier sous Afficher les données d'identification.

Création d'utilisateurs à partir de l'API

Le point de terminaison « Foundation » qui apparaît dans la vue d'ensemble de votre service fournit l' URL de base permettant d'accéder à cette instance via l'API. Pour créer et gérer des utilisateurs, utilisez l' URL de base avec le point de terminaison « 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"}}" \

Pour extraire les chaînes de connexion d'un utilisateur, utilisez l'URL de base avec le noeud final /users/{userid}/connections.

Utilisateurs à usage interne

Votre instance compte quatre utilisateurs réservés. La modification de ces utilisateurs peut rendre votre instance instable, voire inutilisable.

  • ibm-user- Un utilisateur interne d' admin, chargé de gérer l'instance et de mettre à disposition les métriques.
  • replication-user - Compte utilisateur utilisé pour la réplication.
  • sentinel-user - Compte utilisateur des sentinelles utilisé pour gérer la surveillance et les basculements.
  • admin- L'utilisateur par défaut utilisé pour accéder à votre instance.