ferrvault lit les secrets d'un environnement de vault et les affiche, ou lance une
commande avec eux dans son environnement. Elle s'authentifie avec un
token de compte de service, et voit donc exactement l'environnement
auquel ce token est lié.
Installer
La CLI se compile depuis les sources avec Cargo :
cargo install --git https://github.com/FerrLabs/FerrVault ferrvault-cli
Aucun binaire précompilé n'est encore publié.
Se connecter
ferrvault login --url https://api.ferrvault.com
Le token est lu sur l'entrée standard, ou depuis --token ou FERRVAULT_TOKEN. Il est
vérifié auprès de l'API avant d'être enregistré, puis conservé dans le magasin
d'identifiants du système : Gestionnaire d'identification sous Windows, Trousseau sous
macOS, libsecret sous Linux. Il n'y a pas de repli sur un fichier : sous Linux sans
trousseau, login échoue.
En CI, sautez login et définissez FERRVAULT_URL et FERRVAULT_TOKEN dans
l'environnement.
Commandes
| Commande | Ce qu'elle fait |
|---|---|
ferrvault whoami |
Affiche le vault, le rôle, le libellé et l'expiration du token. |
ferrvault list |
Liste les noms et versions des secrets, jamais les valeurs. |
ferrvault get NAME |
Affiche une valeur. |
ferrvault get --all |
Affiche toutes les valeurs, en --format env, dotenv ou json. |
ferrvault get --names A,B |
Affiche une sélection. |
ferrvault exec -- CMD |
Lance CMD avec chaque secret en variable d'environnement. |
ferrvault set NAME VALUE |
Crée un secret, ou le fait tourner avec --update. Demande writer. |
ferrvault delete NAME |
Supprime un secret en gardant ses versions. Demande writer. |
ferrvault logout |
Oublie l'URL et le token enregistrés. |
ferrvault exec n'écrit jamais les valeurs sur disque, c'est la façon la plus sûre de
transmettre des secrets à un processus :
ferrvault exec -- ./run-migrations.sh
ferrvault exec --names DATABASE_URL,STRIPE_KEY -- npm run start
Déploiements privés
| Option | Effet |
|---|---|
--ca-cert PATH |
Fait confiance à un certificat d'AC supplémentaire (PEM). |
--client-cert, --client-key |
Présente un certificat client pour du TLS mutuel. |
--pin-sha256 HASH |
Épingle le certificat serveur par le SHA-256 d'un certificat de sa chaîne. |
Chaque option a sa variable d'environnement FERRVAULT_* ; ferrvault --help les liste.