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.

Workloads

RessourceUtilisateurSA bs-namespace-member
Pods, Deployments, StatefulSets, Jobs, CronJobsCRUD completCRUD complet
ReplicaSetsCRUD completlecture seule
deployments/scale, statefulsets/scale
pods/log, pods/exec, pods/portforward
pods/attach, pods/ephemeralcontainers (kubectl debug)

Réseau et exposition

RessourceUtilisateurSA
ServicesCRUD completCRUD complet
services/proxy
IngressesCRUD completCRUD complet
NetworkPolicieslecture seulelecture seule

Configuration et stockage

RessourceUtilisateurSA
ConfigMaps, SecretsCRUD completCRUD complet
PersistentVolumeClaimsCRUD completCRUD complet
ServiceAccountsCRUD completlecture seule

Certificats TLS (cert-manager)

RessourceDroits
Certificates, IssuersCRUD 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>

PostgreSQL managé (CNPG)

RessourceDroits
Clusters, Databases, Poolers, Backups, ScheduledBackupsCRUD complet
ImageCatalogs, Publications, Subscriptions, FailoverQuorumslecture seule

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

Scaling et disponibilité

RessourceDroits
HorizontalPodAutoscalersCRUD complet
PodDisruptionBudgetsCRUD complet

Observabilité et diagnostic

RessourceDroits
ServiceMonitors, PodMonitors (Prometheus)CRUD complet
Eventslecture seule
ResourceQuotas, LimitRangeslecture seule
Endpoints, EndpointSliceslecture seule
ControllerRevisionslecture seule
metrics.k8s.io (kubectl top pods)lecture seule

Accès CI/CD

RessourceDroits
BlackswiftPermanentKubeconfigsCRUD complet

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

Lectures cluster-wide autorisées

  • storageclasses (les 2 classes disponibles) ;
  • apiservices ;
  • get sur vos propres namespaces (pas de listing global).

Ce que vous ne pouvez pas faire

  • 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.

Vérifier vous-même

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>