Gérer les permissions utilisateur
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Ce document explique comment gérer les permissions utilisateur dans Chaos Mesh, y compris la création de comptes avec différents rôles, l'attribution de permissions aux comptes, la gestion des jetons, ainsi que l'activation ou la désactivation de l'authentification par permissions.
Chaos Mesh utilise l'autorisation RBAC pour gérer les permissions utilisateur. Pour créer, visualiser et gérer des expériences de chaos, les utilisateurs doivent disposer des permissions appropriées dans les apiGroups de chaos-mesh.org pour accéder aux ressources des expériences de chaos.
Chaos Mesh permet de désactiver l'authentification par permissions. Consultez Activer ou désactiver l'authentification par permissions pour savoir comment procéder.
Nous déconseillons de désactiver l'authentification par permissions dans les environnements de production.
Créer des comptes utilisateur et attribuer des permissions
Utilisez le Chaos Dashboard pour créer des comptes et attribuer des permissions. Lorsque vous accédez au tableau de bord, une fenêtre de connexion s'affiche. Cliquez sur le lien Click here to generate :

Ce lien ouvre le Générateur de jetons, comme illustré ci-dessous :

Voici les étapes pour créer des comptes et attribuer des permissions :
Choisir la portée des permissions
Pour attribuer des permissions sur toutes les expériences de chaos du cluster, cochez Cluster scoped. Si vous sélectionnez un espace de noms dans le menu déroulant Namespace, le compte n'aura des permissions que dans cet espace.
En résumé, deux options sont disponibles :
-
Cluster scoped: permissions sur toutes les expériences de chaos du cluster. -
Namespace scoped: permissions sur toutes les expériences de chaos dans l'espace de noms spécifié.
Sélectionner le rôle des utilisateurs
Chaos Mesh propose actuellement ces rôles utilisateur :
-
Manager: dispose de toutes les permissions pour créer, visualiser, mettre à jour et supprimer des expériences de chaos. -
Viewer: dispose uniquement du droit de visualisation des expériences de chaos.
Générer les permissions
Une fois la portée et le rôle définis, le tableau de bord affiche la configuration RBAC correspondante dans le Générateur de jetons. Par exemple, pour un manager dans l'espace de noms default :
kind: ServiceAccount
apiVersion: v1
metadata:
namespace: default
name: account-default-manager-vfmot
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: role-default-manager-vfmot
rules:
- apiGroups: ['']
resources: ['pods', 'namespaces']
verbs: ['get', 'watch', 'list']
- apiGroups:
- chaos-mesh.org
resources: ['*']
verbs: ['get', 'list', 'watch', 'create', 'delete', 'patch', 'update']
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: bind-default-manager-vfmot
namespace: default
subjects:
- kind: ServiceAccount
name: account-default-manager-vfmot
namespace: default
roleRef:
kind: Role
name: role-default-manager-vfmot
apiGroup: rbac.authorization.k8s.io
Cliquez sur COPY en haut à droite de la section de configuration pour copier la configuration RBAC, puis enregistrez le contenu localement dans rbac.yaml.
Créer le compte et attribuer les permissions
Exécutez cette commande dans votre terminal :
kubectl apply -f rbac.yaml
Vérifiez que l'utilisateur local exécutant kubectl dispose des permissions nécessaires sur le cluster pour créer des comptes, attribuer des permissions à d'autres utilisateurs et générer des jetons.
Obtenir le jeton
Les versions de Kubernetes antérieures à v1.22 créaient automatiquement des identifiants de longue durée pour l'API Kubernetes. Dans les versions récentes, vous devez créer manuellement un Secret de jeton de compte de service.
Pour plus de détails, consultez Créer manuellement un jeton d'API pour un ServiceAccount.
Copiez la commande affichée dans la troisième étape du Générateur de jetons et exécutez-la dans votre terminal. Exemple de commande :
kubectl describe -n default secrets account-default-manager-vfmot
Le résultat affiché est le suivant :
Name: account-default-manager-vfmot-token-n4tg8
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: account-default-manager-vfmot
kubernetes.io/service-account.uid: b71b3bf4-cd5e-4efb-8bf6-ff9a55fd7e07
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1111 bytes
namespace: 7 bytes
token: eyJhbG...
Copiez le jeton en bas de l'output et utilisez-le pour vous connecter à l'étape suivante.
Se connecter au Chaos Dashboard avec le compte créé
Fermez le générateur de jetons. Dans le champ Token, saisissez le jeton obtenu à l'étape précédente, et dans le champ Name, entrez un nom significatif pour ce jeton. Il est recommandé d'utiliser une combinaison de la portée des permissions et du rôle utilisateur, par exemple default-manager. Une fois ces deux champs complétés, cliquez sur Submit pour vous connecter :

Si vous n'avez pas déployé le Chaos Dashboard, vous pouvez également générer vous-même les configurations RBAC, puis utiliser kubectl pour créer des comptes utilisateurs et lier les permissions.
Se déconnecter du Chaos Dashboard
Pour remplacer le jeton actuel par un autre, cliquez sur Settings dans la barre latérale gauche du tableau de bord :

En haut de la page, vous trouverez le bouton Logout. Cliquez dessus pour déconnecter le compte actuel.
FAQ
Activer ou désactiver l'authentification par permissions
Lors de l'installation de Chaos Mesh via Helm, l'authentification par permissions est activée par défaut. Pour les environnements de production et autres scénarios à haute sécurité, il est recommandé de conserver cette authentification activée. Si vous testez simplement Chaos Mesh et souhaitez créer rapidement des expériences de chaos, vous pouvez désactiver l'authentification en ajoutant --set dashboard.securityMode=false à votre commande Helm. La commande se présente ainsi :
Pour réactiver l'authentification par permissions, redéfinissez --set dashboard.securityMode=true dans votre commande Helm.