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
Des binaires pour Linux et macOS (amd64 et arm64) et pour Windows (amd64) sont joints à
chaque release cli-v*. Sous Linux ou macOS :
version=cli-v0.2.0
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
arch="$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')"
curl -fsSL "https://github.com/FerrLabs/FerrVault/releases/download/$version/ferrvault-$os-$arch.tar.gz" | tar -xz ferrvault
sudo install -m 0755 ferrvault /usr/local/bin/ferrvault
Sous Windows, téléchargez ferrvault-windows-amd64.zip depuis la même release et placez
ferrvault.exe dans votre PATH. Sur toutes les plateformes, vous pouvez aussi compiler
depuis les sources avec Cargo :
cargo install --locked --git https://github.com/FerrLabs/FerrVault ferrvault-cli
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. Sur GitHub Actions, l'action FerrVault installe la CLI et exporte les
secrets demandés en variables d'environnement masquées pour les étapes suivantes :
- uses: FerrLabs/FerrVault/action@cli-v0.2.0
with:
api-url: https://api.ferrvault.com
token: ${{ secrets.FERRVAULT_TOKEN }}
cli-version: cli-v0.2.0
names: DATABASE_URL,STRIPE_KEY
Utilisez all: true à la place de names pour récupérer tous les secrets de
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.