Comment gérer les vhosts et utilisateurs
Ce guide explique comment ajouter et supprimer des virtual hosts (vhosts), créer des utilisateurs RabbitMQ, gérer leurs droits par vhost et renouveler leur mot de passe depuis la console Hikube.
Prérequis
- Un cluster RabbitMQ créé dans votre projet (voir le démarrage rapide)
- Accès à la page de détail du cluster : menu DB & Messaging → RabbitMQ, puis clic sur le cluster
- Pour l'onglet API : une clé d'API
admindu projet et les variablesHIKUBE_API,HIKUBE_API_KEYetPROJECT_ID(voir Préparer l'environnement) ; les exemples utilisentcurletjq
Ajouter un vhost
- Console
- API
- Sur la page du cluster, dans la section VHosts, cliquez sur Ajouter un VHost.
- Dans la fenêtre Créer un VHost, saisissez le Nom du VHost (minuscules, chiffres et tirets, en commençant par une lettre et en terminant par une lettre ou un chiffre, par exemple
production). - Cliquez sur Créer. Le message « VHost créé » confirme l'opération et le vhost apparaît dans la liste.
curl -sS -X POST "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/vhosts" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vhostName": "production"}'
vhostName accepte jusqu'à 255 caractères, mais seulement des minuscules, des chiffres et des tirets.
Supprimer un vhost
- Console
- API
- Dans la section VHosts, ouvrez le menu d'actions du vhost.
- Choisissez Supprimer le VHost.
- Saisissez le nom exact du vhost pour confirmer, puis cliquez sur Supprimer définitivement.
curl -sS -X DELETE "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/vhosts/production" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY"
L'API ne demande pas de confirmation.
La suppression d'un vhost supprime ses exchanges, queues et messages. Le vhost par défaut /, s'il est présent, ne peut pas être supprimé.
Créer un utilisateur
- Console
- API
- Dans la section Utilisateurs, cliquez sur Créer un utilisateur.
- Saisissez le Nom d'utilisateur : 3 à 16 caractères, minuscules, chiffres et tirets, en commençant par une lettre et en terminant par une lettre ou un chiffre (par exemple
orders-consumer). Certains noms, commeadminouroot, sont réservés. - Dans Accès spécifiques (VHosts), cliquez sur Ajouter pour chaque vhost auquel l'utilisateur doit accéder, puis choisissez :
- le Nom du VHost dans la liste ;
- les Droits : Administrateur (Admin) ou Lecture seule (Read-only).
- Cliquez sur Créer l'utilisateur.
Les droits sont une table « nom du vhost → rôle », avec le rôle admin (Administrateur) ou readonly (Lecture seule) :
curl -sS -X POST "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/users" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "consumer",
"config": {
"vhosts": {
"production": {"role": "readonly"},
"demo": {"role": "admin"}
}
}
}' | jq '{username, password}'
username accepte jusqu'à 63 caractères : minuscules, chiffres et tirets. La réponse contient le champ password, renvoyé une seule fois.
La console affiche le mot de passe généré pour l'utilisateur.
Copiez le mot de passe immédiatement : il ne sera plus affiché après avoir quitté cet écran. Cliquez ensuite sur Terminer.
Créez un utilisateur par application, avec le droit Lecture seule pour les applications qui ne font que consommer des messages. Cela limite l'impact d'une fuite d'identifiants.
Modifier les droits d'un utilisateur
- Console
- API
- Dans la section Utilisateurs, ouvrez le menu d'actions de l'utilisateur et choisissez Gérer les accès.
- La page Modifier l'utilisateur liste ses accès par vhost. Le Nom d'utilisateur ne peut pas être modifié.
- Ajoutez un accès avec Ajouter, changez les Droits d'un vhost, ou retirez un accès avec l'icône de suppression de la ligne.
- Cliquez sur Enregistrer.
Le mot de passe de l'utilisateur n'est pas modifié par cette opération.
PATCH .../users/{username} est une mise à jour partielle, mais config.vhosts, s'il est envoyé, remplace l'ensemble des droits de l'utilisateur : les vhosts absents lui sont retirés. Envoyez donc la liste complète des accès voulus :
curl -sS -X PATCH "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/users/consumer" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"config": {
"vhosts": {
"production": {"role": "admin"}
}
}
}'
Pour consulter les droits actuels :
curl -sS "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/users/consumer" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY" | jq '.config.vhosts'
Le mot de passe de l'utilisateur n'est pas modifié par cette opération.
Renouveler le mot de passe d'un utilisateur
- Console
- API
- Dans le menu d'actions de l'utilisateur, choisissez Changer le mot de passe.
- La fenêtre Rotation du mot de passe demande confirmation. Cliquez sur Effectuer la rotation.
- Copiez le nouveau mot de passe affiché, puis cliquez sur Terminer.
curl -sS -X POST "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/users/consumer/rotate-password" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY" | jq -r '.password'
La requête n'a pas de corps. Le champ password de la réponse contient le nouveau mot de passe, renvoyé une seule fois.
L'ancien mot de passe est révoqué immédiatement. Mettez à jour sans attendre les applications qui utilisent ce compte, sinon leurs connexions seront refusées.
Supprimer un utilisateur
- Console
- API
- Dans le menu d'actions de l'utilisateur, choisissez Supprimer l'utilisateur.
- Saisissez le nom exact de l'utilisateur pour confirmer, puis cliquez sur Supprimer définitivement.
Ses droits sur tous les vhosts sont retirés en même temps.
curl -sS -X DELETE "$HIKUBE_API/rabbitmq/v1alpha1/projects/$PROJECT_ID/clusters/rabbitdemo/users/consumer" \
-H "X-Hikube-Api-Key: $HIKUBE_API_KEY"
Ses droits sur tous les vhosts sont retirés en même temps.
Vérification
- La section VHosts liste tous les vhosts du cluster.
- La colonne VHosts du tableau Utilisateurs affiche, pour chaque utilisateur, ses vhosts et le droit associé.
- Un test de connexion avec un client AMQP (voir l'étape 5 du démarrage rapide) confirme que l'utilisateur accède au vhost attendu.
Pour aller plus loin
- Concepts : vhosts, utilisateurs et droits
- Modifier la configuration d'un cluster
- Configurer l'accès externe