Docs/ Sécurité/ Équipes et RBAC

Équipes et RBAC

Organisez votre équipe avec un contrôle d'accès basé sur les rôles, des permissions au niveau du projet et une piste d'audit complète de toutes les actions.

Création d'une équipe

Les équipes permettent à plusieurs utilisateurs de collaborer sur la même instance sh0. Le premier utilisateur (créé lors de l'installation) est automatiquement le propriétaire de l'équipe avec tous les privilèges d'administration.

  1. Accédez à Paramètres → Équipe dans le tableau de bord.
  2. Votre équipe par défaut est créée automatiquement. Vous pouvez la renommer ici.
  3. Ajoutez une description d'équipe et un avatar (facultatif).
Page des paramètres de l'équipe avec le nom et la description de l'équipe
Note
Dans la version actuelle, sh0 prend en charge une seule équipe par instance. Le support multi-équipe (pour les agences gérant plusieurs clients) est prévu pour une version ultérieure.

Invitation de membres

Les administrateurs peuvent inviter de nouveaux membres dans l'équipe par e-mail. L'utilisateur invité recevra un e-mail avec un lien pour configurer son compte.

  1. Allez dans Paramètres → Équipe → Membres.
  2. Cliquez sur Inviter un membre.
  3. Saisissez l'adresse e-mail et sélectionnez un rôle (Admin, Développeur ou Lecteur).
  4. Cliquez sur Envoyer l'invitation.
Boîte de dialogue d'invitation de membre avec champ e-mail et sélecteur de rôle
Terminal
curl -X POST https://your-server:9000/api/team/invite \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "role": "developer"
  }'

Les invitations en attente sont affichées dans la liste des membres avec un badge Invité. Vous pouvez renvoyer ou révoquer une invitation à tout moment.

Types de rôles

sh0 fournit trois rôles intégrés avec des niveaux d'accès croissants :

RôleDescriptionCas d'utilisation
AdminAccès complet à toutes les ressources, paramètres, gestion d'équipe et facturation.CTO, responsables DevOps, propriétaires d'infrastructure
DéveloppeurPeut créer, déployer et gérer les applications. Ne peut pas accéder aux paramètres d'équipe ou à la configuration du serveur.Ingénieurs logiciels, membres de l'équipe DevOps
LecteurAccès en lecture seule. Peut voir les applications, logs et métriques mais ne peut rien modifier.Parties prenantes, équipe QA, auditeurs
Liste des membres de l'équipe montrant différents rôles avec des badges

Matrice des permissions

Voici le détail complet de ce que chaque rôle peut faire :

ActionAdminDéveloppeurLecteur
Voir les applications et tableaux de bordOuiOuiOui
Voir les logs et métriquesOuiOuiOui
Créer et déployer des applicationsOuiOuiNon
Gérer les variables d'environnementOuiOuiNon
Gérer les domaines et le SSLOuiOuiNon
Accéder au terminalOuiOuiNon
Gérer les membres de l'équipeOuiNonNon
Paramètres du serveur et nœudsOuiNonNon
Facturation et licenceOuiNonNon

Accès au niveau du projet

En plus des rôles globaux, vous pouvez restreindre l'accès d'un utilisateur à des projets spécifiques. C'est utile lorsque différents membres de l'équipe travaillent sur différentes applications.

  1. Allez dans l'onglet Paramètres → Accès du projet.
  2. Cliquez sur Ajouter un membre et sélectionnez un membre de l'équipe.
  3. Choisissez le niveau d'accès pour ce projet (Accès complet, Déploiement uniquement, Lecture seule).
Paramètres d'accès au niveau du projet montrant les permissions des membres
Tip
Par défaut, les administrateurs ont accès à tous les projets. Les développeurs voient tous les projets sauf si vous les restreignez explicitement. Les lecteurs ne peuvent voir que les projets auxquels on leur a accordé l'accès.

Journal d'audit

sh0 enregistre chaque action significative effectuée par les membres de l'équipe. Le journal d'audit fournit une chronologie complète de qui a fait quoi et quand.

Les événements suivis incluent :

  • Événements de connexion et déconnexion
  • Création, déploiement et suppression d'applications
  • Modifications des variables d'environnement
  • Ajouts et suppressions de domaines
  • Invitations de membres et changements de rôle
  • Modifications des paramètres
  • Opérations de base de données (sauvegarde, restauration, suppression)
Journal d'audit montrant une chronologie des actions de l'équipe avec l'utilisateur, l'action et l'horodatage
Terminal
curl https://your-server:9000/api/team/audit-log?page=1&per_page=50 \
  -H "Authorization: Bearer YOUR_TOKEN"
Note
Les logs d'audit sont conservés pendant 90 jours par défaut. Vous pouvez configurer la période de rétention dans Paramètres → Sécurité.

Suppression de membres

Les administrateurs peuvent supprimer des membres de l'équipe depuis Paramètres → Équipe → Membres. La suppression d'un membre :

  • Révoque immédiatement toutes ses sessions actives.
  • Supprime son accès à tous les projets et ressources.
  • Ne supprime aucune ressource qu'il a créée (applications, bases de données, etc.).
  • Préserve ses actions dans le journal d'audit pour la traçabilité.
Terminal
curl -X DELETE https://your-server:9000/api/team/members/usr_abc123 \
  -H "Authorization: Bearer YOUR_TOKEN"
Warning
Le propriétaire de l'équipe ne peut pas être supprimé. Pour transférer la propriété, contactez le support ou réattribuez le rôle de propriétaire depuis Paramètres → Équipe d'abord.