Dans un environnement de niveau entreprise, un accès administratif généralisé constitue un risque inacceptable. L'exploitation d'une plateforme de sauvegarde exige un contrôle granulaire sur qui peut modifier les politiques de rétention, qui peut lancer une restauration bare metal et qui détient l'autorité de gérer les clés cryptographiques.
StateWarden applique le principe du moindre privilège via un contrôle d'accès basé sur les rôles (RBAC) à deux niveaux : les rôles système au niveau de la plateforme (utilisés par les équipes Cyberprime et les intégrateurs) et les rôles propres à chaque Realm, que vous définissez pour votre équipe.
1. Comment l'accès est évalué
Chaque requête API protégée est autorisée par la WebAPI selon un ordre fixe :
- Contournement du propriétaire du Realm. Le compte enregistré comme propriétaire du Realm est toujours autorisé, indépendamment de toute attribution de rôle. Il existe exactement un propriétaire par Realm, et seul le propriétaire peut supprimer le Realm.
- Rôles système de la plateforme. Les comptes des équipes et des intégrateurs sont évalués ensuite (voir section 3).
- Appartenance au Realm. Pour tous les autres utilisateurs, la WebAPI charge le rôle attribué au membre pour ce Realm et évalue son ensemble de permissions. Une permission n'est accordée que lorsque la clé correspondante est explicitement définie à
true; une clé absente signifie un refus.
Les vérifications de permissions sont exécutées à chaque requête sur l'état actuel de la base de données. Si le rôle d'un membre est modifié ou si le membre est retiré, les nouvelles contraintes s'appliquent à ses sessions existantes dès l'appel API suivant : il ne reste aucun accès mis en cache à expirer.
2. Rôles du Realm et ensembles de permissions
Les rôles du Realm sont stockés par Realm sous la forme d'ensembles de permissions nommés. Vous pouvez créer autant de rôles personnalisés que nécessaire et les attribuer aux membres.
À la création d'un Realm, StateWarden crée automatiquement un rôle par défaut Administrator détenant toutes les permissions et l'attribue au créateur du Realm. Ce rôle par défaut ne peut être ni modifié ni supprimé ; utilisez des rôles personnalisés pour restreindre les autres membres.
Modèle de permissions
Les permissions sont des clés avec espace de noms, de la forme category.action. Les clés suivantes sont activement appliquées par la WebAPI :
| Catégorie | Permission | Autorise |
|---|---|---|
| Realm | realm.manage_settings | Modifier les métadonnées du Realm et la politique de sécurité du Realm (y compris la politique MFA) |
| Realm | realm.manage_billing | Consulter et modifier l'abonnement, le plan, les modules complémentaires, les codes promotionnels et le paiement |
| Realm | realm.manage_members | Gérer les rôles personnalisés, les membres et les invitations |
| Realm | realm.view_audit_logs | Lire le journal d'audit du Realm et les journaux par appareil |
| Device | device.view | Consulter la configuration de sécurité d'un appareil |
| Device | device.pair | Générer, lister et révoquer les codes d'appairage d'appareils |
| Device | device.manage_config | Renommer les appareils ; armer/désarmer le suivi des modifications ; configurer le proxy racine ; redémarrer ; déclencher les mises à jour système |
| Device | device.remove | Désappairer un appareil (supprime également logiquement ses sauvegardes) |
| Backup | backup.view | Lister les sauvegardes et les politiques de sauvegarde |
| Backup | backup.start_manual | Déclencher une sauvegarde manuelle sur un agent |
| Backup | backup.delete | Supprimer une archive de sauvegarde |
| Backup Policy | backup_policy.manage | Créer, modifier et supprimer les planifications de sauvegarde et les politiques de rétention |
| Restore | restore.file_level | Restauration au niveau fichier et migration de VM à chaud |
| Restore | restore.instant_mount | Monter et démonter les archives de sauvegarde |
| Restore | restore.bmr_token | Générer un jeton Bare-Metal Recovery |
| Vigil | vigil.view_dashboard | Consulter les statistiques, l'historique, les constats et les règles de suppression de Vigil |
| Vigil | vigil.triage_risks | Trier, ignorer ou supprimer des constats ; créer et supprimer des règles de suppression |
| Vigil | vigil.manage_policies | Modifier les politiques de sécurité par appareil |
| Vigil | vigil.start_scan | Déclencher une analyse antimalware ou de vulnérabilités à la demande |
| Crypto | crypto.rotate_keys | Initialiser le chiffrement ; provisionner les clés d'appareils ; effectuer la rotation des clés maîtres et des clés d'appareils |
Remarque sur la suppression Vigil : supprimer ou trier un constat Vigil exige vigil.triage_risks. L'accès en lecture aux constats (vigil.view_dashboard) ne permet jamais la suppression.
Remarque sur les opérations destructives : le RBAC et la MFA sont deux couches d'application distinctes. Les actions destructives ou cryptographiques (suppression de sauvegardes ou d'appareils, modification de politiques, gestion des clés, restauration de données) exigent en outre une vérification MFA récente conformément à la politique MFA du Realm, même pour les utilisateurs disposant de la permission adéquate. Voir Gérer la MFA et l'identité : la logique à trois états.
3. Rôles système de la plateforme
Indépendamment des rôles du Realm, chaque compte porte un rôle système au niveau de la plateforme :
- ADMIN / SUPPORT_L3 : accès complet en lecture-écriture sur tous les Realms. Réservé aux opérations de la plateforme et au support avancé.
- SUPPORT_L1 / SUPPORT_L2 : strictement en lecture seule. Ces niveaux ne sont autorisés que pour les opérations de consultation (clés de permission contenant
.view,.list,.dashboardouaudit_logs). Ils ne peuvent ni supprimer des constats, ni modifier une configuration, ni effectuer aucune opération d'écriture. - INTEGRATOR_ADMIN : accès complet, mais limité aux Realms appartenant à sa propre organisation d'intégrateur.
- USER : compte standard. L'accès est accordé exclusivement via l'appartenance à un Realm et le rôle attribué dans ce Realm.
4. Gérer votre équipe
La gestion de l'équipe s'effectue sur la page Équipe & Rôles (/members), affichée dans la barre latérale sous la section du Realm actif.
Inviter un nouveau membre
- Ouvrez Équipe & Rôles et cliquez sur Inviter un membre.
- Saisissez l'adresse e-mail de l'utilisateur et sélectionnez son rôle initial.
- Le système enregistre l'invitation et le service de messagerie Hermes envoie un e-mail contenant un lien d'acceptation à durée limitée (valide 7 jours).
- Le destinataire accepte l'invitation sur
/invite/accept; l'appartenance est alors créée avec le rôle attribué.
Les invitations en attente peuvent être listées et révoquées depuis la même page.
Modifier les accès
Les utilisateurs disposant de realm.manage_members peuvent changer le rôle d'un membre ou le retirer du Realm à tout moment. L'autorisation étant évaluée à chaque requête, les permissions réduites prennent effet dès l'appel API suivant du membre.
5. La piste d'audit
Chaque action modifiant l'état au sein d'un Realm est consignée dans le journal d'audit du Realm avec l'identité de l'utilisateur agissant, un horodatage, le type d'événement et des métadonnées structurées. L'administration des membres et des rôles, les opérations liées à la sécurité et les opérations de sauvegarde sont toutes enregistrées dans le journal d'audit du Realm, ce qui conserve un historique complet de qui a modifié quoi et quand.
La WebAPI n'expose aucune opération permettant de modifier ou de supprimer des entrées d'audit individuelles. Le journal constitue le système de référence pour les revues de conformité et l'analyse forensique post-incident ; sa lecture exige la permission realm.view_audit_logs.
StateWarden : la résilience par l'ingénierie.