À propos du projet

Vault est un outil de gestion des secrets de HashiCorp. Un secret est tout ce dont vous voulez contrôler étroitement l'accès, comme les clés API, les mots de passe, les certificats et autres identifiants similaires. Vault fournit une interface unifiée pour tout secret tout en offrant un contrôle d'accès strict et une journalisation d'audit détaillée. Principales fonctionnalités décrites dans le README : - Stockage sécurisé des secrets : Vault stocke des paires clé/valeur arbitraires et chiffre les données avant de les écrire dans le stockage persistant, de sorte que l'accès au stockage brut ne suffit pas pour lire les secrets. Il peut écrire sur disque, Consul et d'autres backends. - Secrets dynamiques : Vault peut générer des secrets à la demande pour des systèmes tels que AWS ou les bases de données SQL. Par exemple, une application peut demander des identifiants pour un bucket S3, et Vault génère à la demande une paire de clés AWS avec les permissions valides, puis la révoque automatiquement après l'expiration du bail. - Chiffrement des données : Vault peut chiffrer et déchiffrer des données sans les stocker, ce qui permet aux équipes de sécurité de définir les paramètres de chiffrement tandis que les développeurs stockent des données chiffrées dans des endroits comme une base de données SQL sans concevoir leur propre chiffrement. - Baux et renouvellement : Chaque secret est associé à un bail ; à la fin du bail, Vault révoque automatiquement le secret, et les clients peuvent renouveler les baux via les API de renouvellement intégrées. - Révocation : Vault prend en charge la révocation de secrets individuels ou d'arbres de secrets, par exemple tous les secrets lus par un utilisateur spécifique ou tous les secrets d'un type particulier, ce qui facilite la rotation des clés et le verrouillage des systèmes après une intrusion. Le README renvoie à la documentation, aux guides de démarrage, aux tutoriels et à un examen de certification sur la plateforme d'apprentissage de HashiCorp, ainsi qu'à des exemples de dépôts pour interagir avec Vault depuis des applications dans différents langages et une application exemple. Pour le développement, Vault est écrit en Go. Le README décrit l'installation de Go et la configuration de GOPATH/GOBIN, le clonage du dépôt en dehors de GOPATH, et l'amorçage avec `make bootstrap`. Les builds de développement sont produits avec `make` ou `make dev`, et un build de l'interface utilisateur avec `make static-dist dev-ui`. Les tests s'exécutent via `make test` (nécessite Docker), et les tests spécifiques à un package peuvent être exécutés avec la variable TEST. Les tests d'acceptation sont exécutés avec `make testacc` et peuvent créer, modifier ou détruire des ressources réelles, ils doivent donc être exécutés avec précaution. Le dépôt documente également un mécanisme de test expérimental basé sur Docker utilisant le package `sdk/helper/testcluster/docker`, y compris des options pour des binaires personnalisés et des licences Enterprise. Le dépôt publie deux bibliothèques importables, `github.com/hashicorp/vault/api` et `github.com/hashicorp/vault/sdk`. Le README note que l'importation du produit Vault principal comme dépendance n'est pas un cas d'utilisation pris en charge. Les problèmes de sécurité doivent être divulgués de manière responsable à security@hashicorp.com.