Le fichier de configuration centralisé diraj.yaml contient un certain nombre de mots de passe et d’informations clés qu’il est possible de chiffrer.
Prérequis
L’extension PHP « sodium » doit être installée et activée.
Génération des clés
La première opération est la génération des clés de cryptage et de décryptage pour les environnements symfony de prod, de dev et de console.
En se plaçant dans le répertoire du projet :
# bin/console secrets:generate-keys –env=prod
# bin/console secrets:generate-keys –env=dev
# bin/console secrets:generate-keys –env=console
Les clé de cryptage et de décryptage sont situées dans le répertoire ../config/secrets/[env] ou [env] est l’environnement prod ou dev.
Chiffrement d’une information
le chiffrement d’une information dans le fichier diraj.yaml se fait en 2 étapes.
Exemple : le mot de passe de la base de données
Étape 1 : chiffrement du mot de passe et création de la variable d’environnement chiffrée « DATABASE_PASSWORD »
# bin/console secrets:set DATABASE_PASSWORD –env=prod
# bin/console secrets:set DATABASE_PASSWORD –env=dev
# bin/console secrets:set DATABASE_PASSWORD –env=console
Les informations chiffrées sont codées dans des fichiers du répertoire ../config/secrets/[env] où [env] est l’environnement prod, console ou dev.
Étape 2 : modification du fichier diraj.yaml pour passer la variable d’environnement chiffrée.
parameters:
…
database_password: ‘%env(DATABASE_PASSWORD)%’
…
Lister les informations chiffrées
La commande suivante permet de lister les informations actuellement chiffrées :
# bin/console secrets:list –env=prod
# bin/console secrets:list –env=dev
# bin/console secrets:list –env=console
Suppression d’une information chiffrée
La commande suivante permet de supprimer une information chiffrée.
Par exemple pour la variable « DATABASE_PASSWORD »
# bin/console secrets:remove DATABASE_PASSWORD –env=prod
# bin/console secrets:remove DATABASE_PASSWORD –env=dev
# bin/console secrets:remove DATABASE_PASSWORD –env=console