Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Gérer les secrets avec Vault
Ce guide pratique vous montre comment gérer les secrets avec Vault dans la plateforme Atlas.
Prérequis
- Avoir un compte sur la plateforme Atlas
- Avoir les droits appropriés sur un DeploymentTarget (admin, editor, secret-viewer)
- Avoir accès à Vault via l'interface Atlas
Qu'est-ce que Vault ?
Vault est un outil de gestion des secrets qui permet aux différents acteurs de la plateforme (en fonction de leur rôle) de lister, consulter et livrer les secrets nécessaires au déploiement des ressources. On y retrouve également les informations de connexion aux bases de données managées et aux buckets.
Accès à Vault
- Accédez à l'interface Atlas via l'URL https://atlas.fabrique.social.gouv.fr/
- Connectez-vous en utilisant vos identifiants (l'authentification se fait via OIDC)
- Cliquez sur le lien vers Vault dans l'interface Atlas
- Authentifiez-vous à nouveau si nécessaire
Structure des secrets dans Vault
Les secrets dans Vault sont organisés selon une structure hiérarchique basée sur les DeploymentTargets. Chaque DeploymentTarget dispose de son propre chemin dans Vault, où sont stockés les secrets qui lui sont associés.
La structure typique est la suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Types de secrets
Secrets livrés automatiquement
Certains secrets sont livrés automatiquement aux DeploymentTargets par la plateforme Atlas. Ces secrets incluent :
- Informations de connexion aux buckets : Lorsqu'un bucket est créé avec un
DeploymentTarget spécifié dans
secretDeliveryTargets
. - Informations de connexion aux bases de données : Lorsqu'un DatabaseCluster
est créé avec un DeploymentTarget spécifié dans
secretDeliveryTargets
.
Secrets personnalisés
Vous pouvez également créer et gérer vos propres secrets dans Vault. Ces secrets peuvent être utilisés par vos applications pour stocker des informations sensibles comme des clés API, des mots de passe, etc.
Gestion des secrets
Consulter les secrets
Via l'interface web de Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Cliquez sur le secret que vous souhaitez consulter
Via l'API Vault
Vous pouvez également utiliser l'API Vault pour consulter les secrets. Voici un exemple avec curl :
1 2 |
|
Créer ou modifier un secret
Via l'interface web de Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Cliquez sur "Create secret" ou sélectionnez un secret existant et cliquez sur "Edit"
- Remplissez les champs avec les valeurs appropriées
- Cliquez sur "Save"
Via l'API Vault
Vous pouvez également utiliser l'API Vault pour créer ou modifier des secrets. Voici un exemple avec curl :
1 2 3 4 5 |
|
Supprimer un secret
Via l'interface web de Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Sélectionnez le secret que vous souhaitez supprimer
- Cliquez sur "Delete"
- Confirmez la suppression
Via l'API Vault
Vous pouvez également utiliser l'API Vault pour supprimer des secrets. Voici un exemple avec curl :
1 2 3 |
|
Utilisation des secrets dans vos applications
Via les secrets Kubernetes
Les secrets stockés dans Vault peuvent être automatiquement synchronisés avec des secrets Kubernetes dans le namespace du DeploymentTarget via External Secrets Operator. External Secrets Operator (ESO) est un addon pour Kubernetes permettant de récupérer et synchroniser des secrets externes au cluster (dans notre cas, au sein du Vault), et de créer des secrets Kubernetes associés. Une fois configuré, vous pouvez y accéder dans votre application en montant le secret ou en utilisant les variables d'environnement.
Note : Pour plus de détails sur l'utilisation d'External Secret Operator pour récupérer des secrets personnalisés, consultez le guide Utiliser External Secret Operator.
Exemple d'utilisation dans un déploiement Kubernetes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
Permissions et rôles
Les permissions sur les secrets dans Vault sont basées sur les rôles attribués aux utilisateurs sur les DeploymentTargets. Voici un résumé des permissions pour chaque rôle :
Admin
- 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
Editor
- 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
Secret-viewer
- 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
Viewer
- Peut lire et lister les métadonnées des secrets
- Peut lire les sous-clés des secrets
Bonnes pratiques
Sécurité
- Ne stockez jamais de secrets directement dans votre code ou dans des fichiers de configuration versionnés.
- Utilisez des secrets différents pour chaque environnement (dev, preprod, prod).
- Limitez l'accès aux secrets aux personnes qui en ont besoin, en suivant le principe du moindre privilège.
- Changez régulièrement les secrets sensibles (mots de passe, clés API, etc.).
Organisation
- Utilisez des noms significatifs pour vos secrets.
- Organisez vos secrets de manière logique, en regroupant les secrets liés à une même application ou à un même service.
- Documentez vos secrets pour faciliter leur utilisation par les autres membres de l'équipe.
Rotation des secrets
- Mettez en place une politique de rotation des secrets pour les secrets sensibles.
- Testez régulièrement la rotation des secrets pour vous assurer que vos applications peuvent gérer les changements de secrets.
Résolution des problèmes courants
Impossible d'accéder à Vault
- Vérifiez que vous êtes bien connecté à l'interface Atlas
- Vérifiez que vous avez les droits nécessaires pour accéder à Vault
- Contactez l'administrateur de la plateforme si le problème persiste
Impossible de lire un secret
- Vérifiez que vous avez les droits nécessaires pour lire le secret (admin, editor, secret-viewer)
- Vérifiez que le secret existe bien
- Vérifiez que vous naviguez dans le bon chemin
Impossible de créer ou modifier un secret
- Vérifiez que vous avez les droits nécessaires pour créer ou modifier le secret (admin, editor)
- Vérifiez que vous naviguez dans le bon chemin
- Contactez l'administrateur de la plateforme si le problème persiste
Le secret n'est pas disponible dans Kubernetes
- Vérifiez que le secret a été correctement créé dans Vault
- Vérifiez que la synchronisation entre Vault et Kubernetes fonctionne correctement
- Contactez l'administrateur de la plateforme si le problème persiste