Points clés
- ✓RBAC repose sur 4 objets : Role, ClusterRole, RoleBinding, ClusterRoleBinding.
- ✓Role définit les permissions, RoleBinding les attribue aux utilisateurs.
- ✓Maîtriser RBAC est requis pour la certification CKA.
TL;DR : RBAC (Role-Based Access Control) est le mécanisme natif de Kubernetes pour contrôler qui peut faire quoi sur un cluster. Il repose sur quatre objets : Role, ClusterRole, RoleBinding et ClusterRoleBinding. Maîtriser RBAC est indispensable pour sécuriser vos environnements de production et constitue une compétence clé pour la certification CKA.
La formation LFS458 Administration Kubernetes couvre en détail la configuration RBAC sur clusters multi-nœuds.
Qu'est-ce que RBAC dans Kubernetes ?
RBAC (Role-Based Access Control) est un système d'autorisation qui régule l'accès aux ressources Kubernetes en fonction des rôles attribués aux utilisateurs ou aux comptes de service. RBAC définit des permissions granulaires sur les opérations (verbs) applicables aux ressources (pods, services, secrets).
RBAC répond à une question simple : qui peut exécuter quelle action sur quelle ressource, dans quel namespace ?
Les quatre objets RBAC fonctionnent en paires :
| Objet | Portée | Rôle |
|---|---|---|
| Role | Namespace | Définit des permissions dans un namespace |
| ClusterRole | Cluster | Définit des permissions à l'échelle du cluster |
| RoleBinding | Namespace | Lie un Role/ClusterRole à des sujets dans un namespace |
| ClusterRoleBinding | Cluster | Lie un ClusterRole à des sujets sur tout le cluster |
À retenir : RBAC = Roles (permissions) + Bindings (attribution). Aucune permission n'existe sans un binding explicite.
Pourquoi RBAC est essentiel pour sécuriser un cluster Kubernetes ?
Avec 82% des utilisateurs de conteneurs qui exécutent Kubernetes en production, la sécurité des clusters devient critique. Sans RBAC, tout utilisateur authentifié peut potentiellement accéder à l'ensemble des ressources.
Les équipes IT passent en moyenne 34 jours de travail par an à résoudre des problèmes Kubernetes. Une mauvaise configuration RBAC génère des incidents de sécurité coûteux.
RBAC adresse trois risques majeurs :
- Principe du moindre privilège : chaque utilisateur n'accède qu'aux ressources nécessaires à son travail
- Isolation des namespaces : les équipes de développement ne peuvent pas impacter les workloads de production
- Auditabilité : les bindings documentent explicitement qui possède quelles permissions
L'administration d'un cluster Kubernetes moderne exige une stratégie RBAC dès le premier jour. RBAC constitue la première ligne de défense avant les mécanismes réseau avancés.
Comment fonctionne RBAC dans l'architecture Kubernetes ?
L'architecture du control plane Kubernetes intègre RBAC au niveau de l'API Server. Chaque requête passe par trois étapes :
Requête → Authentication → Authorization (RBAC) → Admission Control → Exécution
L'API Server évalue les règles RBAC pour chaque requête API. Vérifiez que RBAC est activé sur votre cluster :
kubectl api-versions | grep rbac.authorization.k8s.io
# Résultat attendu : rbac.authorization.k8s.io/v1
Les sujets RBAC peuvent être :
- User : utilisateur humain (géré hors Kubernetes)
- Group : groupe d'utilisateurs
- ServiceAccount : compte de service pour les pods
À retenir : Kubernetes ne gère pas les utilisateurs directement. L'authentification est déléguée à des systèmes externes (certificats, OIDC, tokens). RBAC ne gère que l'autorisation.
Quels sont les composants clés de RBAC ?
Roles et ClusterRoles : définir les permissions
Un Role définit des permissions dans un namespace spécifique. Voici un exemple autorisant la lecture des pods :
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: production
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
Un ClusterRole fonctionne à l'échelle du cluster. Utilisez-le pour les ressources non-namespacées (nodes, persistentvolumes) ou pour créer des permissions réutilisables :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
Les verbs correspondent aux opérations HTTP :
| Verb | Opération HTTP | Description |
|---|---|---|
| get | GET (unitaire) | Lire une ressource |
| list | GET (collection) | Lister des ressources |
| watch | GET (streaming) | Observer les changements |
| create | POST | Créer une ressource |
| update | PUT | Modifier une ressource |
| patch | PATCH | Modifier partiellement |
| delete | DELETE | Supprimer une ressource |
RoleBindings et ClusterRoleBindings : attribuer les permissions
Un RoleBinding lie un Role ou ClusterRole à des sujets dans un namespace :
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: production
subjects:
- kind: User
name: alice
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount
name: monitoring-sa
namespace: monitoring
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Un ClusterRoleBinding attribue des permissions cluster-wide. Utilisez-le avec précaution :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cluster-admin-binding
subjects:
- kind: User
name: admin@example.com
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
À retenir : Un ClusterRole lié par un RoleBinding n'accorde des permissions que dans le namespace du binding. Combinez ClusterRoles réutilisables avec des RoleBindings par namespace.
Comment configurer RBAC étape par étape ?
Pour configurer le réseau et les accès sur votre cluster, suivez cette procédure RBAC :
Étape 1 : Créer un ServiceAccount
kubectl create serviceaccount deployer -n staging
Étape 2 : Définir un Role avec les permissions nécessaires
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: staging
name: deployer-role
rules:
- apiGroups: ["apps"]
resources: ["deployments", "replicasets"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["pods", "services", "configmaps"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
Étape 3 : Créer le RoleBinding
kubectl create rolebinding deployer-binding \
--role=deployer-role \
--serviceaccount=staging:deployer \
-n staging
Étape 4 : Vérifier les permissions
kubectl auth can-i create deployments --as=system:serviceaccount:staging:deployer -n staging
# Résultat : yes
kubectl auth can-i delete secrets --as=system:serviceaccount:staging:deployer -n staging
# Résultat : no
La commande kubectl auth can-i est indispensable pour déboguer RBAC. Testez systématiquement avant de déployer en production.
Quelles sont les bonnes pratiques RBAC en production ?
Les organisations qui gèrent en moyenne 20+ clusters doivent standardiser leur approche RBAC. Selon un CTO interviewé dans le rapport Spectro Cloud 2025 : « Just given the capabilities that exist with Kubernetes, and the company's desire to consume more AI tools, we will use Kubernetes more in future. »
Appliquez ces principes :
- Principe du moindre privilège : commencez sans permission et ajoutez uniquement le nécessaire
- Namespaces comme frontières : isolez les environnements (dev, staging, prod) par namespace
- ClusterRoles réutilisables : créez des rôles standards (viewer, editor, admin) liés par RoleBindings
- Évitez cluster-admin : ne distribuez jamais le ClusterRole cluster-admin aux développeurs
- Auditez régulièrement : listez les bindings avec
kubectl get rolebindings,clusterrolebindings -A
Pour déployer un cluster multi-nœuds, prévoyez dès l'installation une stratégie RBAC cohérente.
Exemple de ClusterRole "viewer" réutilisable :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: namespace-viewer
rules:
- apiGroups: ["", "apps", "batch"]
resources: ["*"]
verbs: ["get", "list", "watch"]
Ce ClusterRole peut ensuite être lié dans chaque namespace via des RoleBindings distincts, évitant la duplication.
La formation LFS460 Sécurité Kubernetes approfondit les stratégies RBAC avancées comme l'agrégation de ClusterRoles.
Quand utiliser RBAC vs d'autres mécanismes d'autorisation ?
RBAC n'est pas le seul mode d'autorisation Kubernetes. Comparez les options :
| Mode | Cas d'usage | Limites |
|---|---|---|
| RBAC | Production multi-tenant, équipes multiples | Complexité croissante avec le nombre de rôles |
| ABAC | Règles basées sur attributs | Configuration statique (fichier), peu flexible |
| Webhook | Autorisation externe (OPA, custom) | Latence réseau, point de défaillance |
| Node | Kubelet uniquement | Automatique, pas configurable |
RBAC convient à 90% des cas. Combinez-le avec des Admission Controllers (OPA Gatekeeper) pour des politiques avancées.
La FAQ administration de cluster Kubernetes répond aux questions fréquentes sur RBAC.
Comment déboguer les problèmes RBAC ?
Les erreurs RBAC se manifestent par des messages "Forbidden". Diagnostiquez avec ces commandes :
# Vérifier les permissions d'un utilisateur
kubectl auth can-i --list --as=alice -n production
# Identifier les RoleBindings d'un namespace
kubectl get rolebindings -n production -o wide
# Inspecter un RoleBinding
kubectl describe rolebinding read-pods -n production
# Vérifier les permissions d'un ServiceAccount
kubectl auth can-i --list --as=system:serviceaccount:production:app-sa -n production
Pour déployer votre premier cluster en 30 minutes, testez RBAC dès l'installation avec un utilisateur non-admin.
Comme le recommande TealHQ : « Don't let your knowledge remain theoretical - set up a real Kubernetes environment to solidify your skills. » La pratique sur un cluster de test est essentielle pour maîtriser RBAC.
À retenir : Activez les audit logs de l'API Server pour tracer les décisions RBAC en production. Les logs révèlent quelle règle a autorisé ou refusé chaque requête.
Passez à l'action : formez-vous à l'administration Kubernetes
La maîtrise de RBAC est évaluée dans la certification CKA. Selon un retour d'expérience TechiesCamp : « The CKA exam tested practical, useful skills. It wasn't just theory - it matched real-world situations you'd actually run into when working with Kubernetes. »
Pour approfondir la gestion des accès et l'administration de cluster, SFEIR Institute propose :
- LFS458 Administration Kubernetes : 4 jours de formation intensive incluant RBAC, préparation CKA
- LFS460 Sécurité Kubernetes : 4 jours dédiés à la sécurité avancée, préparation CKS
- Kubernetes les fondamentaux : 1 jour pour découvrir les concepts essentiels. Pour approfondir, consultez notre formation Développement applications Kubernetes.
Consultez le guide complet Formation Kubernetes pour identifier le parcours adapté à votre profil. Contactez nos conseillers pour planifier votre montée en compétences.