Comment fonctionnent les permissions
À quoi sert cet écran
Cette page n’est pas un écran : c’est le modèle qui sous-tend les quatre onglets de Personnes et accès. Lisez-la une fois et le reste des Paramètres cesse de surprendre.
Fenwave utilise un contrôle d’accès basé sur les rôles (RBAC). L’accès suit une seule chaîne, et chaque onglet de Personnes et accès en est un maillon :
permission → policy → rôle → utilisateur
Avant de commencer
Rien à configurer. Pour appliquer le modèle, il vous faut les permissions listées sur Personnes et accès.
Ouvrir l’écran
Il n’y a rien à ouvrir. Les concepts décrits ici apparaissent dans Policies, Rôles, Utilisateurs et Access Explorer.
L’interface
Les quatre maillons de la chaîne
| Maillon | Ce que c’est | Où le gérer |
|---|---|---|
| Permission | Une action atomique, par ex. platform-settings.user.create |
Pas gérée directement — sélectionnée dans une policy |
| Policy | Un ensemble de permissions, éventuellement cantonné à des clusters et environnements | Policies |
| Rôle | Un ensemble de policies. Admin, Developer, DevOps sont livrés par défaut |
Rôles |
| Utilisateur | Détient un ou plusieurs rôles | Utilisateurs |
On n’accorde jamais une permission à une personne. Si quelqu’un a besoin d’un accès, la question est toujours quel rôle, puis quelle policy dans ce rôle.
Nommage des permissions
<plugin>.<ressource>.<action> — par exemple
platform-settings.cluster.validate.
Les actions sont généralement read, create, update, delete, auxquelles
s’ajoutent des verbes propres à la ressource : validate sur les identifiants,
export et import sur la configuration, assign-group sur les utilisateurs,
assign-owner et manage-components sur les projets, view-details sur les
groupes et les projets.
Copiez les chaînes de permission à l’identique. Access Explorer les compare littéralement.
Types de permissions et profils
Les permissions portent un type :
- default — accessible aux deux profils.
- devops — utilisable uniquement par un profil DevOps.
Chaque utilisateur possède un profil, Dev ou DevOps, renseigné
explicitement sur sa fiche. Il n’est pas déduit des permissions détenues. Le
profil a deux effets :
- Il filtre les rôles. Un utilisateur de profil Dev ne peut pas recevoir un rôle marqué DevOps ; le rôle est affiché avec la mention « requires DevOps profile ».
- Il choisit la réserve de sièges de licence. Les sièges Dev et DevOps sont comptés séparément, et un utilisateur sans profil renseigné compte comme dev.
Cantonnement
Le cantonnement vit sur le statement de la policy, nulle part ailleurs. Un statement peut restreindre ses permissions à :
- des clusters — choisis comme ressources ;
- des environnements —
dev,staging,production, sous forme de condition ; un ou plusieurs.
Un statement qui n’a ni l’un ni l’autre s’applique partout. C’est la mauvaise configuration la plus fréquente dans Fenwave, et elle est silencieuse : dans la liste, une policy trop large est identique à une policy correcte.
Noms de permissions cantonnés par environnement
Les permissions env-by-branch.* existent sous deux formes, et le backend passe
de l’une à l’autre. Un nom plat comme env-by-branch.devops-config.read est
contrôlé comme env-by-branch.dev.devops-config.read, puis staging, puis
production, puis le nom plat lui-même. Détenir une seule variante
d’environnement satisfait une route à nom plat pour cet environnement.
env-by-branch.platform-service.* est volontairement indépendant de
l’environnement et n’est jamais étendu.
Procédures
Comprendre pourquoi quelqu’un ne peut pas faire quelque chose
- Ouvrez Access Explorer.
- Recherchez l’utilisateur et la chaîne de permission exacte.
- Lisez le résultat le long de la chaîne :
- Refusé et aucun rôle ne l’accorde → attribuez un rôle portant une policy qui l’accorde.
- Autorisé ici mais en échec dans le produit → vérifiez le cantonnement : la policy ne couvre peut-être pas ce cluster ou cet environnement.
- Autorisé et le menu reste invisible → cache de session ; rechargez.
Accorder un accès sans trop accorder
- Partez de la policy la plus étroite qui fasse le travail.
- Cantonnez le statement aux clusters et environnements précis.
- Rattachez-la à un rôle dédié à ce poste.
- Vérifiez dans Access Explorer avant d’annoncer à l’utilisateur que c’est fait.
Scénario
« Marc peut déployer en production et personne ne sait pourquoi. »
Marc est un développeur qui ne devrait atteindre que le dev.
- Access Explorer sur
marcet la permission de déploiement en production → autorisé. C’est donc accordé, ce n’est pas une anomalie. - Regardez les rôles de Marc. Il détient
Backend DeveloperetOn-Call. - Ouvrez les policies de chacun.
Backend Developerest correctement cantonné au dev.On-Callcontient un statement sans condition d’environnement. - Ce statement sans portée est la cause. Les permissions sont cumulatives : c’est l’union de tous les rôles qui s’applique, un rôle correctement cantonné ne peut donc pas retirer ce qu’un autre accorde.
- Corrigez la policy
On-Callen ajoutant la condition d’environnement production et la ressource cluster, plutôt que de retirer Marc du rôle. - Revérifiez dans Access Explorer.
La leçon se généralise : quand un accès est trop large, auditez tous les rôles de l’utilisateur. Restreindre celui que vous soupçonniez ne suffit jamais à lui seul.
En cas de problème
| Symptôme | Cause | Comment vérifier | Solution |
|---|---|---|---|
| Permission accordée, l’utilisateur ne voit rien changer | Les résultats de permissions sont mis en cache par session | — | Demandez-lui de recharger |
| L’accès est plus large que ne le suggère le rôle | Un autre rôle accorde la même permission | Access Explorer, puis auditez tous les rôles | Cantonnez ou retirez la policy fautive |
| Un rôle ne peut pas être attribué | Le rôle est DevOps et le profil de l’utilisateur est Dev | La boîte de dialogue indique « requires DevOps profile » | Changez le profil, ou choisissez un rôle compatible Dev |
| Le décompte de sièges paraît faux | Les utilisateurs sans profil comptent comme dev | Le rapport d’utilisateurs actifs dans Général | Renseignez un profil explicite sur chaque utilisateur |
| Impossible de cantonner à un cluster ou un environnement | Il n’est pas enregistré | Infrastructure | Enregistrez-le d’abord |
Le rôle admin se comporte différemment |
Il contourne entièrement les policies — accès complet, y compris aux ressources ajoutées plus tard | L’avertissement dans l’éditeur de rôle | Utilisez plutôt un rôle cantonné |
Pour aller plus loin
- Policies — là où le cantonnement s’applique
- Access Explorer — l’outil qui répond à « pourquoi pas ? »