gcp-secret-env
v3.0.2
Published
A simple tool to convert a google secret manager to an environment variable (in .env file or other)
Maintainers
Readme
gcp-secret-env
🌍 Language Selection | Sélection de la Langue
Description
gcp-secret-env is a simple CLI utility to retrieve secrets from Google Cloud Secret Manager and set them as environment variables or in JSON format (by default in a .env file, but you can specify another file).
It can be used both in a local development environment and in your CI/CD pipelines.
Prerequisites
Before using gcp-secret-env, make sure you have:
- Google Cloud SDK installed.
- The necessary permissions to access Secret Manager.
- Valid Google Cloud credentials.
To authenticate with Google Cloud, run the following command:
$ gcloud auth application-default loginBy default, the tool will look for credentials in the GOOGLE_APPLICATION_CREDENTIALS environment variable or in the file ~/.config/gcloud/application_default_credentials.json. If no valid credentials are found, an alert will be displayed.
Usage
Set credentials for a specific project
If you have multiple projects and want to use specific credentials, use the -spc (Set Project Credentials) flag:
$ npx gcp-secret-env -spc <project-name>or
$ npx gcp-secret-env -spc=<project-name>Select a specific project
To use project-specific credentials, use the -upc (Use Project Credentials) flag:
$ npx gcp-secret-env -upc <project-name>If the specified project does not exist, an error will be displayed.
Retrieve the latest version of a secret
You need the project ID and the secret name:
$ npx gcp-secret-env -id <project-id> -name <secret-name>With project-specific credentials:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -upc <project-name>Retrieve a specific version of a secret
$ npx gcp-secret-env -id <project-id> -name <secret-name> -version <version>Create a new version of a secret from a .env file
$ npx gcp-secret-env -id <project-id> -name <secret-name> -saveSpecify a custom file or path
Use the -file flag to define a specific file containing the secrets:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -file <file-path>or
$ npx gcp-secret-env -id <project-id> -name <secret-name> -file=<file-path>If no file is specified, .env will be used by default.
Use JSON format
Use the -json flag to retrieve or send secrets in JSON format:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -jsonDisable a secret version
To disable a specific version of a secret:
- Disable the latest version:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -disable latest- Disable the previous version:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -disable -1- Disable a specific version (e.g., version 3):
$ npx gcp-secret-env -id <project-id> -name <secret-name> -disable 3Destroy a secret version
Use -destroy to delete a specific secret version:
- Destroy the latest version:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -destroy latest- Destroy the previous version:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -destroy -1- Destroy a specific version (e.g., version 3):
$ npx gcp-secret-env -id <project-id> -name <secret-name> -destroy 3Combine multiple actions
You can combine multiple flags (-save, -disable, -destroy) for efficient secret management.
Example: create a new version of a secret, disable the previous version, and delete the one before that:
$ npx gcp-secret-env -id <project-id> -name <secret-name> -save -disable -1 -destroy -2Additional Notes
- All flags that accept a value can be used with or without
=. - The order of the flags does not matter, but the value must always follow the corresponding flag.
- If you use project-specific credentials, ensure they are correctly configured.
Description
gcp-secret-env est un utilitaire CLI simple permettant de récupérer des secrets depuis Google Cloud Secret Manager et de les définir comme variables d'environnement ou en format JSON (par défaut dans un fichier .env, mais un autre fichier peut être spécifié).
Il peut être utilisé aussi bien dans un environnement de développement local que dans des pipelines CI/CD.
Prérequis
Avant d'utiliser gcp-secret-env, assurez-vous d'avoir :
- Google Cloud SDK installé.
- Les permissions nécessaires pour accéder à Secret Manager.
- Des identifiants Google Cloud valides.
Pour vous authentifier avec Google Cloud, exécutez la commande suivante :
$ gcloud auth application-default loginPar défaut, l'outil recherchera les identifiants dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS ou dans le fichier ~/.config/gcloud/application_default_credentials.json. Si aucun identifiant valide n'est trouvé, une alerte sera affichée.
Utilisation
Définir des identifiants pour un projet spécifique
Si vous avez plusieurs projets et souhaitez utiliser des identifiants spécifiques, utilisez le drapeau -spc (Set Project Credentials) :
$ npx gcp-secret-env -spc <nom-du-projet>ou
$ npx gcp-secret-env -spc=<nom-du-projet>Sélectionner un projet spécifique
Pour utiliser des identifiants propres à un projet, utilisez le drapeau -upc (Use Project Credentials) :
$ npx gcp-secret-env -upc <nom-du-projet>Si le projet spécifié n'existe pas, une erreur sera affichée.
Récupérer la dernière version d'un secret
Vous avez besoin de l'ID du projet et du nom du secret :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret>Avec des identifiants spécifiques à un projet :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -upc <nom-du-projet>Récupérer une version spécifique d'un secret
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -version <version>Créer une nouvelle version d'un secret à partir d'un fichier .env
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -saveSpécifier un fichier ou chemin personnalisé
Utilisez le drapeau -file pour définir un fichier contenant les secrets :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -file <chemin-du-fichier>ou
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -file=<chemin-du-fichier>Si aucun fichier n'est spécifié, .env sera utilisé par défaut.
Utiliser le format JSON
Utilisez le drapeau -json pour récupérer ou envoyer des secrets en format JSON :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -jsonDésactiver une version de secret
Pour désactiver une version spécifique d'un secret :
- Désactiver la dernière version :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -disable latest- Désactiver la version précédente :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -disable -1- Désactiver une version spécifique (ex: version 3) :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -disable 3Détruire une version de secret
Utilisez -destroy pour supprimer une version spécifique d'un secret :
- Détruire la dernière version :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -destroy latest- Détruire la version précédente :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -destroy -1- Détruire une version spécifique (ex: version 3) :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -destroy 3Combiner plusieurs actions
Vous pouvez combiner plusieurs drapeaux (-save, -disable, -destroy) pour une gestion efficace des secrets.
Exemple : créer une nouvelle version d'un secret, désactiver la version précédente et supprimer celle d'avant :
$ npx gcp-secret-env -id <id-du-projet> -name <nom-du-secret> -save -disable -1 -destroy -2Notes supplémentaires
- Tous les drapeaux qui acceptent une valeur peuvent être utilisés avec ou sans
=. - L'ordre des drapeaux n'a pas d'importance, mais la valeur doit toujours suivre le drapeau correspondant.
- Si vous utilisez des identifiants spécifiques à un projet, assurez-vous qu'ils sont correctement configurés.
