Aller au contenu

Permissions et RBAC

Cette page décrit les permissions réellement déployées pour un compte client Kontainers, dans ses namespaces. C’est l’équivalent lisible de kubectl auth can-i --list.

Deux identités coexistent :

  • votre compte utilisateur (kubeconfig téléchargé depuis Rancher) — usage interactif ;
  • le ServiceAccount bs-namespace-member, pré-provisionné dans chaque namespace — pensé pour la CI/CD.
Ressource Utilisateur SA bs-namespace-member
Pods, Deployments, StatefulSets, Jobs, CronJobs CRUD complet CRUD complet
ReplicaSets CRUD complet lecture seule
deployments/scale, statefulsets/scale ✅ ✅
pods/log, pods/exec, pods/portforward ✅ ✅
pods/attach, pods/ephemeralcontainers (kubectl debug) ❌ ✅
Ressource Utilisateur SA
Services CRUD complet CRUD complet
services/proxy ❌ ✅
Ingresses CRUD complet CRUD complet
NetworkPolicies lecture seule lecture seule
Ressource Utilisateur SA
ConfigMaps, Secrets CRUD complet CRUD complet
PersistentVolumeClaims CRUD complet CRUD complet
ServiceAccounts CRUD complet lecture seule
Ressource Droits
Certificates, Issuers CRUD complet
CertificateRequests, Orders, Challenges (ACME) lecture seule

Vous pouvez donc suivre l’émission d’un certificat Let’s Encrypt de bout en bout :

Fenêtre de terminal
kubectl get certificates,certificaterequests,orders,challenges -n <namespace>
Ressource Droits
Clusters, Databases, Poolers, Backups, ScheduledBackups CRUD complet
ImageCatalogs, Publications, Subscriptions, FailoverQuorums lecture seule

Un guide dédié PostgreSQL managé est à venir.

Ressource Droits
HorizontalPodAutoscalers CRUD complet
PodDisruptionBudgets CRUD complet
Ressource Droits
ServiceMonitors, PodMonitors (Prometheus) CRUD complet
Events lecture seule
ResourceQuotas, LimitRanges lecture seule
Endpoints, EndpointSlices lecture seule
ControllerRevisions lecture seule
metrics.k8s.io (kubectl top pods) lecture seule
Ressource Droits
BlackswiftPermanentKubeconfigs CRUD complet

Permet de générer des kubeconfigs non expirants pour vos pipelines. Voir CI/CD avec le ServiceAccount (à venir).

  • storageclasses (les 2 classes disponibles) ;
  • apiservices ;
  • get sur vos propres namespaces (pas de listing global).
  • Lister les namespaces du cluster (kubectl get ns est refusé) — utilisez les namespaces nommés dans votre kubeconfig ;
  • Accéder aux nœuds, PersistentVolumes, CRDs, ClusterRoles ;
  • Créer ou modifier des NetworkPolicies ;
  • pods/proxy, deletecollection ;
  • Toute action hors de vos namespaces.
Fenêtre de terminal
# Qui suis-je ?
kubectl auth whoami
# Que puis-je faire dans mon namespace ?
kubectl auth can-i --list -n <votre-namespace>
# Test ciblé
kubectl auth can-i create clusters.postgresql.cnpg.io -n <votre-namespace>