Annexe C. Contrôle d'accès basé sur les rôles (RBAC)
Lorsque le SDK de l'opérateur génère un projet d'opérateur (qu'il s'agisse d'un opérateur basé sur Helm, Ansible ou Go), il crée un certain nombre de fichiers manifestes pour déployer l'opérateur. Nombre de ces fichiers accordent des autorisations à l'Opérateur déployé pour qu'il puisse effectuer les différentes tâches qu'il accomplit tout au long de sa vie.
Le SDK de l'opérateur génère trois fichiers relatifs aux autorisations de l'opérateur :
- deploy/service_account.yaml
-
Au lieu de s'authentifier en tant qu'utilisateur, Kubernetes propose une méthode d'authentification programmatique sous la forme de comptes de service. Un compte de service fonctionne comme l'identité du pod opérateur lorsqu'il effectue des requêtes contre l'API de Kubernetes. Ce fichier définit simplement le compte de service lui-même, et tu n'as pas besoin de le modifier manuellement. Tu trouveras plus d'informations sur les comptes de service dans la documentation de Kubernetes.
- deploy/role.yaml
-
Ce fichier crée et configure un rôle pour le compte de service. Le rôle détermine les autorisations dont dispose le compte de service lorsqu'il interagit avec les API de la grappe. L'Operator SDK génère ce fichier avec des autorisations extrêmement larges que, pour des raisons de sécurité, tu voudras modifier avant de déployer ton Operator en production. Dans la section suivante, nous expliquons comment affiner les autorisations par défaut dans ce fichier.