Principes de base du RBAC dans Kubernetes
Qu'est-ce que le RBAC?
Le contrôle d'accès basé sur les rôles (Role-Based Access Control, RBAC) est un mécanisme de sécurité essentiel dans Kubernetes qui régule l'accès aux ressources du cluster en fonction des rôles des utilisateurs individuels ou des comptes de service. Il offre un contrôle précis sur qui peut effectuer des actions spécifiques sur les ressources du cluster.
Composants principaux du RBAC
1. Sujets
Le RBAC définit trois types de sujets :
- Utilisateurs
- Groupes
- Comptes de service
graph TD
A[RBAC Subjects] --> B[Users]
A --> C[Groups]
A --> D[Service Accounts]
2. Ressources
Les ressources dans Kubernetes incluent :
- Pods
- Déploiements (Deployments)
- Services
- Espaces de noms (Namespaces)
- ConfigMaps
3. Verbes
Les verbes RBAC courants incluent :
- create
- get
- list
- update
- delete
- watch
Verbe |
Description |
create |
Créer de nouvelles ressources |
get |
Récupérer une ressource spécifique |
list |
Lister plusieurs ressources |
update |
Modifier des ressources existantes |
delete |
Supprimer des ressources |
Objets RBAC
Rôles
Les rôles définissent un ensemble de permissions au sein d'un espace de noms spécifique.
Exemple de rôle :
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
Rôles de cluster (ClusterRoles)
Les rôles de cluster définissent des permissions pour l'ensemble du cluster.
Exemple de rôle de cluster :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
Liaisons de rôles (RoleBindings)
Les liaisons de rôles connectent les rôles aux sujets au sein d'un espace de noms.
Exemple de liaison de rôle :
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Liaisons de rôles de cluster (ClusterRoleBindings)
Les liaisons de rôles de cluster connectent les rôles de cluster aux sujets pour l'ensemble du cluster.
Bonnes pratiques
- Suivez le principe du moindre privilège
- Utilisez des comptes de service pour les applications
- Auditez et révisez régulièrement les permissions
- Évitez d'utiliser le rôle par défaut cluster-admin
Recommandation LabEx
Pour une pratique concrète avec le RBAC Kubernetes, explorez les laboratoires interactifs de sécurité Kubernetes de LabEx pour approfondir votre compréhension des mécanismes de contrôle d'accès.