13 Emmagatzematge de secrets

Vista general

És possible emmagatzemar en secret informació sensible a HashiCorp Vault KV Secrets Engine - Versió 2. Els secrets es poden desar per a:

  • valors macro d'usuari
  • Credencials d'accés a la base de dades

Zabbix proporciona accés de només lectura als secrets de Vault, suposant que els secrets els gestiona una altra persona.

Valors de les macros d'usuari

És possible emmagatzemar en secret els valors de macro d'usuari a Vault.

Un valor "Vault secret" d'una macro d'usuari conté un camí de referència (com ara 'path:key', per exemple, "secret/zabbix:password").

Les ordres següents es poden emprar per establir el valor de la ruta esmentada a l'exemple:

 # Habiliteu el punt de muntatge "secret/" si encara no és habilitat, tingueu en compte que s'ha d'emprar "kv-v2"
        vault secrets enable -path=secret/ kv-v2
       
        # Posa un secret nou amb el mot de pas de la clau sota el punt de muntatge "secret/" i el camí "secret/zabbix"
        vault kv put secret/zabbix password=<mot de pas>
       
        # Comprova que el secret s'ha afegit correctament
        vault kv get secret/zabbix
       
        # Finalment, proveu amb Curl, tingueu en compte que les "dades" s'han d'afegir manualment després del punt de muntatge i "/v1" abans del punt de muntatge, veieu també el paràmetre --capath
        curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix

El servidor Zabbix recupera el valor secret cada vegada que s'actualitzen les dades de configuració i s'emmagatzemen a la memòria cau de configuració. El testimoni d'autenticació per a l'accés de només lectura als camins de referència s'ha de proporcionar a la configuració del servidor (paràmetre "VaultToken"). Si el valor de la macro no es pot recuperar correctament, l'element corresponent que empra el valor no s'admetrà.

També és possible activar l'actualització de valors secrets des de Vault, emprant la línia d'ordres opció 'secrets_reload'.

El proxy Zabbix mai es comunica amb Vault per obtindre secrets que no siguin les credencials de la base de dades. Els valors secrets del proxy Zabbix s'obtenen del servidor Zabbix a cada sincronització de configuració i s'emmagatzemen a la memòria cau de configuració de la mateixa manera que al servidor Zabbix.

Això vol dir que un proxy Zabbix no pot iniciar la recollida de dades després d'un reinici fins que rep l'actualització de dades de configuració del servidor Zabbix per primer cop. El xifrat ha d'ésser habilitat entre el servidor Zabbix i el proxy; en cas contrari, es registra un missatge d'avís del servidor.

Credencials de la base de dades

És possible emmagatzemar en secret les credencials de la base de dades emprades pel servidor Zabbix, proxys i interfície a Vault:

  • La configuració relacionada amb el magatzem per recuperar les credencials de la base de dades es pot introduir opcionalment a la interfície assistent d'instal·lació.

La interfície emmagatzemarà a la memòria cau les credencials de la base de dades recuperades de Vault. Tingueu en compte que el directori de fitxers temporals del sistema de fitxers s'empra per a la memòria cau de les credencials de la base de dades a la interfície. Podeu emprar la constant ZBX_DATA_CACHE_TTL per controlar amb quina freqüència s'actualitza/invalida la memòria cau de dades.

  • Per al servidor/proxy, el paràmetre de configuració VaultDBPath es pot emprar per especificar el camí des del qual es recuperaran les credencials de la base de dades mitjançant les claus "mot de pas" i "nom d'usuari" (per exemple: secret/zabbix/base de dades).

Les ordres següents es poden emprar per establir els valors del camí esmentat a l'exemple:

 # Habiliteu el punt de muntatge "secret/" si encara no és habilitat, tingueu en compte que s'ha d'emprar "kv-v2"
        vault secrets enable -path=secret/ kv-v2
       
        # Poseu nous secrets amb les claus de nom d'usuari i mot de pas al punt de muntatge "secret/" i al camí "secret/zabbix/base de dades"
        vault kv put secret/zabbix/database username=zabbix password=<mot_de_pas>
       
        # Comprova que el secret s'ha afegit correctament
        vault kv get secret/zabbix/database
       
        # Finalment, proveu amb Curl, tingueu en compte que les "dades" s'han d'afegir manualment després del punt de muntatge i "/v1" abans del punt de muntatge, vegeu també el paràmetre --capath
        curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database

Paràmetres de configuració

Per al servidor/proxy Zabbix, s'han afegit nous paràmetres de configuració per a l'autenticació de Vault i la recuperació de credencials de base de dades:

  • VaultToken: testimoni d'autenticació de Vault (veieu els fitxers de configuració de Zabbix servidor/proxy per a més informació)
  • VaultURL - URL HTTP[S] del servidor Vault
  • VaultDBPath: camí de volta des d'on es recuperaran les credencials de la base de dades mitjançant les claus "mot de pas" i "nom d'usuari" (p. ex.: secret/zabbix/base de dades)

El servidor Zabbix i el proxy Zabbix llegeixen els paràmetres de configuració relacionats amb Vault des de zabbix_server.conf i zabbix_proxy.conf a l'inici.

El servidor Zabbix i el proxy Zabbix també llegiran la variable d'entorn "VAULT_TOKEN" un cop a l'inici i la desactivaran perquè no sigui disponible mitjançant scripts externs o maliciosos; és un error si VaultToken i VAULT_TOKEN contenen un valor.

La barra inclinada i els dos punts són símbols reservats. La barra inclinada només es pot emprar per separar el punt de muntatge del camí (per exemple, secret/zabbix on el punt de muntatge és "secret" i "zabbix" és el camí) i, en el cas de les macros de Vault, només es poden emprar els dos punts per separar el camí de la clau. És possible codificar l'URL "/" i ":" si és necessari crear un punt de muntatge amb un nom separat per una barra inclinada (per exemple, foo/bar/zabbix on el punt de muntatge és "foo/bar" i el path és "zabbix" com "foo%2Fbar/zabbix") i si el nom del punt de muntatge o el camí ha de contindre dos punts.

Configuració TLS

El certificat signat de l'autoritat de certificació (CA) s'ha d'afegir al magatzem de CA predeterminat. Alternativament, es pot especificar una ubicació de magatzem de CA personalitzada mitjançant el paràmetre de configuració SSLCALocation; tingueu en compte que, en aquest cas, el directori del certificat s'ha de preparar mitjançant la utilitat openssl c_rehash, per exemple, configureu SSLCALocation i copieu "ca.pem" a aquest directori i, a continuació, executeu l'ordre següent:

 c_rehash .