Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Modèle de sécurité et contrôle d'accès
Ce document explique le modèle de sécurité et le contrôle d'accès de la plateforme Atlas, les différents rôles, leurs permissions et la gestion des secrets.
Vue d'ensemble
Atlas utilise un modèle de sécurité basé sur les rôles (RBAC - Role-Based Access Control) pour contrôler l'accès aux ressources. Ce modèle permet une séparation claire des responsabilités et une gestion fine des droits d'accès.
Rôles principaux
Administrateur de la plateforme
L'administrateur de la plateforme est responsable de la gestion globale de la plateforme Atlas.
Permissions
- Accès à toutes les ressources
- Attribue les rôles aux administrateurs d'organisation et administrateurs de workspace
- Peut créer des zones, des organisations et des workspaces
Administrateur d'organisation
L'administrateur d'organisation est responsable de la gestion d'une organisation spécifique.
Permissions
- Accède à toutes les ressources de son organisation
- Ne peut pas modifier les ressources définies à l'échelle de la plateforme
- Attribue des rôles aux administrateurs de workspace
- Peut créer des workspaces
Administrateur de workspace
L'administrateur de workspace est responsable de la gestion d'un workspace spécifique.
Permissions
- Accède à toutes les ressources de son workspace
- Ne peut pas modifier les ressources définies à l'échelle de l'organisation et de la plateforme
- Peut créer des ressources (buckets, databaseclusters, deploymenttargets)
Rôles sur les DeploymentTargets
Les utilisateurs peuvent avoir un ou plusieurs des rôles suivants sur un ou plusieurs DeploymentTargets :
Admin
L'administrateur d'un DeploymentTarget a un contrôle total sur les ressources du DeploymentTarget.
Permissions Vault
- Peut créer, mettre à jour, lire, supprimer et lister les données et métadonnées des secrets
- Peut lire les sous-clés des secrets
- Peut créer et mettre à jour les opérations de suppression, de restauration et de destruction des secrets
Permissions Kubernetes
- A toutes les permissions sur les ressources liées au namespace (sauf resourcequota et limitranges)
- Peut lire resourcequota et limitranges
- A toutes les permissions sur les logs des pods
- Peut exécuter des commandes dans les pods
- Peut faire du port-forwarding sur les pods
- Inclut toutes les permissions du rôle viewer
Editor
L'éditeur d'un DeploymentTarget peut modifier les ressources du DeploymentTarget, mais avec certaines restrictions.
Permissions Vault
- Peut créer, mettre à jour et supprimer les données des secrets
- Peut créer, mettre à jour, lire et lister les métadonnées des secrets
- Peut lire les sous-clés des secrets
- Peut créer et mettre à jour les opérations de suppression et de restauration des secrets
Permissions Kubernetes
- Peut lire, créer, mettre à jour et modifier toutes les ressources liées au namespace (sauf Secret, resourcequota et limitranges)
- Peut créer, mettre à jour et modifier les secrets
- Peut lire resourcequota et limitranges
- A toutes les permissions sur les Pods, ReplicaSet, Jobs
- A toutes les permissions sur les logs des pods
- Ne peut pas exécuter de commandes dans les pods
- Peut faire du port-forwarding sur les pods
- Inclut toutes les permissions du rôle viewer
Viewer
Le visualiseur d'un DeploymentTarget peut uniquement voir les ressources du DeploymentTarget.
Permissions Vault
- Peut lire et lister les métadonnées des secrets
- Peut lire les sous-clés des secrets
Permissions Kubernetes
- Peut lire (get, list, watch) toutes les ressources liées au namespace (sauf Secret)
- Peut lire les logs des pods
- Ne peut pas exécuter de commandes dans les pods
- Peut lire les ressources cluster suivantes : Namespace, ClusterIssuer, IngressClass, StorageClass, Nodes, PersistentVolume, PriorityClass, RuntimeClass
Secret-viewer
Le visualiseur de secrets d'un DeploymentTarget peut voir les secrets du DeploymentTarget.
Permissions Vault
- Peut lire les données des secrets
- Peut lire et lister les métadonnées des secrets
- Peut lire les sous-clés des secrets
Permissions Kubernetes
- Peut lire les secrets (get, list, watch)
Gestion des identités et des accès
Atlas utilise Keycloak pour la gestion des identités et des accès. Les administrateurs de la plateforme utilisent Keycloak pour attribuer des rôles aux utilisateurs, et les utilisateurs finaux peuvent s'y connecter pour gérer leur compte.
Authentification
L'authentification se fait via OIDC (OpenID Connect). Tous les outils de la plateforme (ArgoCD, Grafana, Vault, etc.) utilisent OIDC pour authentifier les utilisateurs.
Attribution des rôles
Les rôles sont attribués de manière hiérarchique :
- Les administrateurs de la plateforme attribuent des rôles aux administrateurs d'organisation et administrateurs de workspace
- Les administrateurs d'organisation attribuent des rôles aux administrateurs de workspace
- Les administrateurs de workspace attribuent des rôles aux utilisateurs sur les DeploymentTargets
Gestion des secrets
Atlas utilise Vault pour la gestion des secrets. Les secrets d'accès aux ressources (buckets, databaseclusters) sont automatiquement livrés aux DeploymentTargets spécifiés.
Livraison des secrets
Sous le capot, les secrets sont générés par le backend de la plateforme, puis envoyés à Vault et au namespace cible via External Secret Operator. Les utilisateurs peuvent accéder à ces secrets via Vault ou via les secrets Kubernetes dans le namespace du DeploymentTarget.
Accès aux secrets
L'accès aux secrets est contrôlé par les rôles sur les DeploymentTargets. Seuls les utilisateurs avec les rôles appropriés (admin, editor, secret-viewer) peuvent accéder aux secrets.
Bonnes pratiques
- Principe du moindre privilège : Attribuez toujours le niveau d'accès minimum nécessaire pour accomplir une tâche.
- Séparation des responsabilités : Séparez clairement les responsabilités entre les différents rôles.
- Rotation des secrets : Changez régulièrement les secrets pour limiter les risques de compromission.
- Audit régulier : Vérifiez régulièrement les accès et les permissions pour vous assurer qu'ils sont toujours appropriés.
- Formation des utilisateurs : Assurez-vous que les utilisateurs comprennent leurs responsabilités en matière de sécurité.
Conclusion
Le modèle de sécurité d'Atlas offre un contrôle fin des accès aux ressources, permettant une séparation claire des responsabilités et une gestion efficace des droits d'accès. En suivant les bonnes pratiques de sécurité, vous pouvez garantir que seuls les utilisateurs autorisés ont accès aux ressources dont ils ont besoin.