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?:
Áú»¢¶Ä²© 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.
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¨¦.
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 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.
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
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 :
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.
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?: