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 :

  1. Les administrateurs de la plateforme attribuent des rôles aux administrateurs d'organisation et administrateurs de workspace
  2. Les administrateurs d'organisation attribuent des rôles aux administrateurs de workspace
  3. 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.

Paramètres d’affichage

Choisissez un thème pour personnaliser l’apparence du site.