# Gestion des secrets

### Les variables d'environnement;

Il arrive que certaines informations doivent être mise à disposition d'un grand nombre d'applications, ou ne doivent pas figurer en clair dans votre code (jetons d'accès, mots de passe, etc.). L'utilisation de **variables d'environnement** permet de pouvoir accéder à ces informations depuis n'importe quel service.

Au lancement d'un service, plusieurs variables d'environnement sont déjà injectées automatiquement — par exemple, les tokens d'accès à <a href="https://code.groupe-genes.fr/DSIT/documentation-dsit/src/branch/main/docs/Services/pole-scientifique/Onyxia/docs/version.md" target="_blank">GitHub</a> et <a href="https://code.groupe-genes.fr/DSIT/documentation-dsit/src/branch/main/docs/Services/pole-scientifique/Onyxia/docs/stockage.md" target="_blank">MinIO</a>.


![](/img/secret.png)

### Création et gestion de secrets

Sur la plateforme, les variables d'environnement sont des secrets écrits dans <a href="https://www.vaultproject.io" target="_blank">Vault</a> <a href="https://onyxia.lab.groupe-genes.fr/my-secrets/" target="_blank">(le coffre fort du Datalab)</a> et sont chiffrées. Cela vous permet d'y stocker des jetons, des identifiants et des mots de passe. La page <a href="https://onyxia.lab.groupe-genes.fr/my-secrets/" target="_blank">Mes secrets</a> prends la forme d'un explorateur de fichiers où vous pouvez trier et hiérarchiser vos variables dans des dossiers.

#### Pour commencer :

* Créez un nouveau dossier `+ Nouveau dossier`
* Puis dans ce dossier, créez un nouveau secret `+ Nouveau secret`
* Ouvrez votre secret

![](/img/toolbarsecret.png)

Chaque secret peut contenir plusieurs variables, composés de paires de clés-valeurs.

* `+ Ajouter une variable`

![](/img/secrettable.png)

::: {.callout-note}
Les clés (nom de la variable) commencent toujours par`$`et contiennent uniquement des lettres, des chiffres et le caractère de soulignement (`_`). Par convention, les clefs s'écrivent en MAJUSCULE.
:::

Remplissez le champ du nom de la clef puis sa valeur.

### Convertir des secrets en variables d'environnement

Une fois votre secret édité, avec ses différentes variables, vous êtes prêt à l'utiliser dans votre service.

* Copiez le chemin du secret en cliquant sur le bouton `Utiliser dans un service`
* Puis au moment de la configuration de votre service, allez dans l'onglet `Vault`et collez le chemin du secret dans le champ dédié

![](/img/secret-config.png)

* Créez et ouvrez votre service

Pour vérifier que vos variables d'environnement ont bien été créés, vous pouvez lancer les commandes suivantes dans le terminal du service :

```bash
# Lister toutes les variables d'environnement disponibles
env 

# Afficher la valeur d'une variable d'environnement
echo $MA_VARIABLE 

# Trouver toutes les variables d'environnement qui contiennent un pattern donné
env | grep -i "<PATTERN>"
```