Permissions et roles
GitLab applique un modele de permissions base sur des roles fixes, assignes au niveau utilisateur dans un projet ou un groupe. Cinq roles prédéfinis couvrent la majorite des besoins ; l'edition EE ajoute des controles plus fins.
Les cinq roles
- Guest : lecture des issues et des snippets. Aucun acces au code si le projet est prive.
- Reporter : acces en lecture au depot, creation d'issues, commentaires sur les MR.
- Developer : push sur les branches non protegees, creation de MR, execution de pipelines.
- Maintainer : gestion des branches protegees, acces aux parametres du projet, gestion des runners, merge sur les branches protegees.
- Owner : controle total du projet ou du groupe, suppression, transfert, gestion des membres.
Heritage des permissions
Les permissions s'heritent du groupe vers les sous-groupes et les projets. Un membre Developer d'un groupe parent est automatiquement Developer sur tous les projets de ce groupe. On peut elever le role d'un membre sur un projet specifique, mais pas le reduire en dessous du role herite.
Access Tokens
GitLab propose plusieurs types de tokens :
- Personal Access Token (PAT) : lie a un utilisateur, scopes configrables (api, read_repository, write_repository, read_registry...)
- Project Access Token : lie a un projet, agit comme un membre fictif du projet avec un role et des scopes definis
- Group Access Token : equivalent au niveau groupe (EE)
- Deploy Token : acces limite en lecture/ecriture au depot et au registry, sans authentification utilisateur
- Deploy Key : cle SSH en lecture seule sur un ou plusieurs projets
Service Accounts (EE)
Les Service Accounts sont des utilisateurs non humains avec une licence dediee. Ils s'utilisent pour les integrations systeme (CI bots, monitoring, scripts d'automatisation) sans consommer une licence utilisateur normale et sans etre lies a une personne physique.
Administration de l'instance
L'admin d'instance a acces a tout : tous les projets, tous les groupes, les parametres systeme, les runners globaux, les logs. Un admin peut se connecter en tant que n'importe quel utilisateur (impersonation). Cette capacite doit etre restreinte et tracee. GitLab EE permet de desactiver l'impersonation dans les parametres d'application.