Un cluster Kubernetes Stack Harbor PaaS gère l’autorisation via le RBAC natif de Kubernetes — ressources Role, ClusterRole, RoleBinding et ClusterRoleBinding liées à des sujets ServiceAccount. Le cluster livre un jeton d’amorçage dont le ServiceAccount porte le rôle cluster-admin ; le reste est à vous de définir.
Cette page est la version courte de ce qu’il faut faire avec ce jeton admin initial et comment accorder un accès limité aux coéquipiers sans distribuer le cluster-admin.
Le jeton par défaut
Après l’installation du cluster, le tableau de bord expose un jeton d’accès. Ce jeton est lié à un ServiceAccount avec le ClusterRoleBinding cluster-admin — il peut tout faire sur le cluster. Traitez-le comme un identifiant root :
- Hors gestion de version.
- À utiliser pour l’amorçage et l’outillage admin, pas pour des charges applicatives.
- Tournez-le si vous suspectez une fuite (supprimez le
Secret, le contrôleur le régénère).
Pour le quotidien, surtout en équipe, le jeton cluster-admin est le mauvais outil. Émettez plutôt des ServiceAccount à portée limitée.
Partager l’accès — la bonne forme
Le motif qui tient à l’usage :
- Créer un
ServiceAccountdédié par humain ou par automatisme qui a besoin d’accès. Un compte par usage rend les pistes d’audit lisibles. - Définir un
RoleouClusterRolequi liste exactement les verbes et ressources nécessaires. Commencez serré (get,list,watchsurpods) et élargissez à la découverte des besoins réels. - Les lier par
RoleBinding(portée namespace) ouClusterRoleBinding(portée cluster). - Distribuer le jeton du
ServiceAccountà l’utilisateur ou le coller dans son pipeline CI.
Un premier découpage :
- Observabilité lecture seule —
get,list,watchsur pods, services, deployments, ingresses, events. Utile aux développeurs qui doivent déboguer leur service sans pouvoir modifier l’état du cluster. - Propriétaire de namespace — verbes complets limités à un namespace. Permet à une équipe de gérer son application sans voir le reste du cluster.
- Opérateur de cluster — verbes cluster complets sauf la gestion du RBAC lui-même, réservée à ceux qui exploitent le cluster.
- Cluster admin — le jeton d’amorçage. En pratique, à n’utiliser pour personne sauf les opérations ponctuelles qui ne se font pas autrement.
Deux mises en garde propres à Stack Harbor
- Le RBAC Kubernetes n’est pas la même surface que les comptes plateforme. Partager un environnement Kubernetes via la fonction de partage standard de la plateforme expose un accès SSH au nœud maître — et le nœud maître a un
kubectlpré-configuré avec le rôlecluster-admin. De fait, toute personne avec qui vous partagez l’environnement par la plateforme peut agir encluster-adminindépendamment de ce que dit le RBAC. Partagez en conséquence, et tournez la configurationkubectldu nœud maître si vous devez révoquer un accès. - Le pare-feu de la plateforme ne contraint pas Kubernetes. Les règles réseau dans le cluster sont gérées dynamiquement par Kubernetes (via le plugin CNI,
NetworkPolicyet le contrôleur d’ingress). Les paramètres pare-feu du tableau de bord ne s’appliquent pas au trafic intra-cluster. Pour une politique réseau, définissez des ressourcesNetworkPolicy.