Formes Pokémon
Le problème des secrets
Comme nous l'avons vu précédemment, il n'est pas rare que les applications contiennent des informations sensibles (mots de passe, clés d'API, etc.). Traditionnellement, ces informations sont stockées dans des fichiers de configuration ou directement dans le code source de l'application. Cette approche pose plusieurs problèmes :
-
Difficulté de gestion des accès : Il est difficile de contrôler qui a accès à ces informations sensibles, car elles sont souvent partagées entre plusieurs développeurs et systèmes.
-
Risque de fuite : Si un fichier de configuration ou le code source est compromis, les informations sensibles sont exposées.
-
Difficulté de rotation : Il est difficile de changer régulièrement ces informations sensibles, car cela nécessite de modifier le code source ou les fichiers de configuration, et de redéployer l'application.
La solution : un coffre-fort à secrets
Pour résoudre ces problèmes, il est recommandé d'utiliser un coffre-fort à secrets (secrets vault en anglais). Un coffre-fort à secrets est un système centralisé pour stocker et gérer les informations sensibles. Il offre les avantages suivants :
-
Gestion centralisée des accès : Le coffre-fort à secrets permet de contrôler précisément qui a accès à chaque information sensible.
-
Chiffrement des données : Les informations sensibles sont chiffrées au repos et en transit, ce qui réduit le risque de fuite.
-
Rotation automatisée : Le coffre-fort à secrets permet de changer automatiquement les informations sensibles à intervalles réguliers.
-
Auditabilité : Le coffre-fort à secrets enregistre toutes les opérations effectuées sur les informations sensibles, ce qui permet de suivre qui a accédé à quoi et quand.
HashiCorp Vault
HashiCorp Vault est un coffre-fort à secrets open source très populaire. Il offre les fonctionnalités suivantes :
-
Stockage sécurisé des secrets : Vault chiffre les secrets avant de les stocker, ce qui les protège contre les accès non autorisés.
-
Contrôle d'accès précis : Vault permet de définir des politiques d'accès très fines, basées sur l'identité de l'utilisateur ou de l'application.
-
Génération dynamique de secrets : Vault peut générer des secrets à la demande, ce qui permet d'éviter de stocker des secrets statiques.
-
Rotation des secrets : Vault peut automatiquement renouveler les secrets à intervalles réguliers, ce qui réduit le risque de compromission.
-
Auditabilité : Vault enregistre toutes les opérations effectuées sur les secrets, ce qui permet de suivre qui a accédé à quoi et quand.
Fonctionnement de Vault
Vault fonctionne selon le principe suivant :
-
Une application s'authentifie auprès de Vault en utilisant un moyen d'authentification (par exemple, un jeton, un certificat, un compte cloud, etc.).
-
Vault vérifie l'identité de l'application et lui attribue un ensemble de politiques d'accès.
-
L'application demande un secret à Vault.
-
Vault vérifie que l'application a le droit d'accéder à ce secret, en fonction de ses politiques d'accès.
-
Si l'accès est autorisé, Vault renvoie le secret à l'application.
Il est important de noter que Vault ne stocke pas les secrets en clair. Ils sont chiffrés avec une clé de chiffrement, qui est elle-même protégée par un secret maître. Le secret maître est divisé en plusieurs parties, qui sont distribuées à différents opérateurs. Pour déchiffrer les secrets, il est nécessaire de rassembler un certain nombre de ces parties (quorum).

