Áú»¢¶Ä²©

This is a translation of the original English documentation page. Help us make it better.

13 Stockage des secrets

Aper?u

Il est possible de stocker secr¨¨tement certaines informations sensibles dans HashiCorp Vault KV Secrets Engine - Version 2. Les secrets peuvent ¨ºtre enregistr¨¦s pour?:

  • les valeurs de macro utilisateur
  • les identifiants d'acc¨¨s ¨¤ la base de donn¨¦es

Áú»¢¶Ä²© fournit un acc¨¨s en lecture seule aux secrets de Vault, en supposant que les secrets sont g¨¦r¨¦s par quelqu'un d'autre.

Valeurs des macros utilisateur

Il est possible de stocker secr¨¨tement les valeurs des macros utilisateur dans Vault.

Une valeur "secret Vault" d'une macro utilisateur contient un chemin de r¨¦f¨¦rence (comme 'chemin:cl¨¦', par exemple "secret/zabbix:password").

Les commandes suivantes peuvent ¨ºtre utilis¨¦es pour d¨¦finir la valeur du chemin mentionn¨¦ dans l'exemple :

# Activer le point de montage "secret/" s'il n'est pas d¨¦j¨¤ activ¨¦, notez que "kv-v2" doit ¨ºtre utilis¨¦
       $ vault secrets enable -path=secret/ kv-v2
       
       # Mettre le nouveau secret avec le mot de passe cl¨¦ sous le point de montage "secret/" et le chemin "secret/zabbix"
       $vault kv put secret/zabbix password=<mot de passe>
       
       # Tester que le secret est ajout¨¦ avec succ¨¨s
       $ vault kv get secret/zabbix
       
       # Enfin testez avec Curl, notez que les "donn¨¦es" doivent ¨ºtre ajout¨¦es manuellement apr¨¨s le point de montage et "/v1" avant le point de montage, voir ¨¦galement le param¨¨tre --capath
       $ curl --header "X-Vault-Token : <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix

La valeur secr¨¨te est r¨¦cup¨¦r¨¦e par le serveur Áú»¢¶Ä²© ¨¤ chaque actualisation des donn¨¦es de configuration et est stock¨¦e dans le cache de configuration. Le jeton d'authentification pour un acc¨¨s en lecture seule aux chemins de r¨¦f¨¦rence doit ¨ºtre fourni dans la configuration du serveur (param¨¨tre 'VaultToken'). Si la valeur de la macro ne peut pas ¨ºtre r¨¦cup¨¦r¨¦e avec succ¨¨s, l'¨¦l¨¦ment correspondant utilisant la valeur deviendra non pris en charge.

Il est ¨¦galement possible de d¨¦clencher l'actualisation des valeurs secr¨¨tes depuis Vault, gr?ce ¨¤ l'option 'secrets_reload' de la ligne de commande.

Le proxy Áú»¢¶Ä²© ne communique jamais avec Vault pour obtenir des secrets autres que les informations d'identification de la base de donn¨¦es. Les valeurs secr¨¨tes sur le proxy Áú»¢¶Ä²© sont r¨¦cup¨¦r¨¦es ¨¤ partir du serveur Áú»¢¶Ä²© ¨¤ chaque synchronisation de configuration et stock¨¦es dans le cache de configuration de la m¨ºme mani¨¨re que sur le serveur Áú»¢¶Ä²©.

Cela signifie qu'un proxy Áú»¢¶Ä²© ne peut pas d¨¦marrer la collecte de donn¨¦es apr¨¨s un red¨¦marrage tant qu'il n'a pas re?u la mise ¨¤ jour des donn¨¦es de configuration du serveur Áú»¢¶Ä²© pour la premi¨¨re fois. Le chiffrement doit ¨ºtre activ¨¦ entre le serveur Áú»¢¶Ä²© et le proxy ; sinon, un message d'avertissement du serveur est logg¨¦.

Identifiants de la base de donn¨¦es

Il est possible de stocker secr¨¨tement les informations d'identification de la base de donn¨¦es utilis¨¦es par le serveur Áú»¢¶Ä²©, les proxys et le frontend dans Vault :

  • Les param¨¨tres li¨¦s ¨¤ Vault pour la r¨¦cup¨¦ration des informations d'identification de la base de donn¨¦es peuvent ¨ºtre saisis en option dans l'interface assistant d'installation.

Les informations d'identification de la base de donn¨¦es r¨¦cup¨¦r¨¦es ¨¤ partir de Vault seront mises en cache par l'interface. Notez que le r¨¦pertoire de fichiers temporaires du syst¨¨me de fichiers est utilis¨¦ pour la mise en cache des informations d'identification de la base de donn¨¦es dans le frontend. Vous pouvez utiliser la constante ZBX_DATA_CACHE_TTL pour contr?ler la fr¨¦quence d'actualisation/invalidation du cache de donn¨¦es.

  • Pour le serveur/proxy, le param¨¨tre de configuration VaultDBPath peut ¨ºtre utilis¨¦ pour sp¨¦cifier le chemin ¨¤ partir duquel les informations d'identification pour la base de donn¨¦es seront r¨¦cup¨¦r¨¦es par les cl¨¦s 'password' et 'username' (par exemple : secret/zabbix/database).

Les commandes suivantes peuvent ¨ºtre utilis¨¦es pour d¨¦finir les valeurs du chemin mentionn¨¦ dans l'exemple :

# Activer le point de montage "secret/" s'il n'est pas d¨¦j¨¤ activ¨¦, notez que "kv-v2" doit ¨ºtre utilis¨¦
       $ vault secrets enable -path=secret/ kv-v2
       
       # Placez les nouveaux secrets avec les cl¨¦s username et password sous le point de montage "secret/" et le chemin "secret/zabbix/database"
       $ vault kv put secret/zabbix/database username=zabbix password=<password>
       
       # Tester que le secret est ajout¨¦ avec succ¨¨s
       $ vault kv get secret/zabbix/database
       
       # Enfin testez avec Curl, notez que les "donn¨¦es" doivent ¨ºtre ajout¨¦es manuellement apr¨¨s le point de montage et "/v1" avant le point de montage, voir ¨¦galement le param¨¨tre --capath
       $ curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database

Param¨¨tres de configuration

Pour le serveur/proxy Áú»¢¶Ä²©, de nouveaux param¨¨tres de configuration ont ¨¦t¨¦ ajout¨¦s pour l'authentification Vault et la r¨¦cup¨¦ration des informations d'identification de la base de donn¨¦es :

  • VaultToken - Jeton d'authentification de coffre-fort (voir le fichier de configuration server/proxy Áú»¢¶Ä²© pour plus de d¨¦tails)
  • VaultURL - URL HTTP[S] du serveur de Vault
  • VaultDBPath - Chemin de Vault ¨¤ partir duquel les informations d'identification pour la base de donn¨¦es seront r¨¦cup¨¦r¨¦es par les cl¨¦s 'password' et 'username' (par exemple : secret/zabbix/database)

Le serveur Áú»¢¶Ä²© et le proxy Áú»¢¶Ä²© lisent les param¨¨tres de configuration li¨¦s ¨¤ Vault depuis zabbix_server.conf et zabbix_proxy.conf au d¨¦marrage.

Le serveur Áú»¢¶Ä²© et le proxy Áú»¢¶Ä²© liront en outre la variable d'environnement "VAULT_TOKEN" une fois au d¨¦marrage et la d¨¦sactiveront afin qu'elle ne soit pas disponible via des scripts externes ou mal intentionn¨¦s ; c'est une erreur si VaultToken et VAULT_TOKEN contiennent une valeur.

La barre oblique et les deux-points sont des symboles r¨¦serv¨¦s. La barre oblique ne peut ¨ºtre utilis¨¦e que pour s¨¦parer le point de montage du chemin (par exemple, secret/zabbix o¨´ le point de montage est "secret" et "zabbix" est le chemin) et, dans le cas des macros Vault, les deux-points ne peuvent ¨ºtre utilis¨¦s que pour s¨¦parer le chemin de la cl¨¦. Il est possible d'encoder l'URL "/" et ":" s'il est n¨¦cessaire de cr¨¦er un point de montage avec un nom s¨¦par¨¦ par une barre oblique (par exemple, foo/bar/zabbix o¨´ le point de montage est "foo/bar" et le chemin est " zabbix" comme "foo%2Fbar/zabbix") et si le nom ou le chemin du point de montage doit contenir deux-points.

Configuration TLS

Le certificat sign¨¦ par une autorit¨¦ de certification (CA) doit ¨ºtre ajout¨¦ au magasin CA par d¨¦faut. Alternativement, un emplacement de magasin CA personnalis¨¦ peut ¨ºtre sp¨¦cifi¨¦ ¨¤ l'aide du param¨¨tre de configuration SSLCALocation ; notez que dans ce cas, le r¨¦pertoire du certificat doit ¨ºtre pr¨¦par¨¦ ¨¤ l'aide de l'utilitaire openssl c_rehash, par exemple configurez SSLCALocation et copiez "ca.pem" dans ce r¨¦pertoire, puis ex¨¦cutez la commande suivante?:

 $c_rehash .