Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

#13 Almacenamiento de secretos

Visión general

Es posible almacenar información confidencial en secreto en HashiCorp Vault KV Secrets Engine - Versión 2. Los secretos se pueden guardar para:

  • valores de macro de usuario
  • credenciales de acceso a la base de datos

Zabbix proporciona acceso de solo lectura a los secretos en Vault, suponiendo que los secretos son manejados por otra persona.

Valores de macro de usuario

Es posible almacenar valores de macro de usuario en secreto en Vault.

Un "secreto de Vault" El valor de una macro de usuario contiene una ruta de referencia (como 'ruta: clave', por ejemplo "secreto/zabbix:contraseña").

Los siguientes comandos se pueden utilizar para establecer el valor de la ruta mencionado en el ejemplo:

# Habilite el punto de montaje "secret/" si aún no está habilitado, tenga en cuenta que se debe usar "kv-v2"
       $ secretos de la bóveda habilitar -ruta=secreto/ kv-v2
       
       # Ponga el nuevo secreto con la contraseña clave en el punto de montaje "secret/" y la ruta "secret/zabbix"
       $ bóveda kv poner secreto/zabbix contraseña=<contraseña>
       
       # Probar que el secreto se agregó con éxito
       $ bóveda kv obtener secreto/zabbix
       
       # Finalmente pruebe con Curl, tenga en cuenta que los "datos" deben agregarse manualmente después del punto de montaje y "/v1" antes del punto de montaje, también vea el parámetro --capath
       $ curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix

El servidor Zabbix recupera el valor secreto en cada actualización de datos de configuración y se almacena en la memoria caché de configuración. los token de autenticación para un acceso de solo lectura a las rutas de referencia debe proporcionarse en la configuración del servidor (parámetro 'VaultToken'). Si el el valor de la macro no se puede recuperar con éxito el elemento correspondiente usar el valor dejará de ser compatible.

También es posible activar la actualización de valores secretos desde Vault, usando una línea de comando 'secrets_reload' opción.

El proxy de Zabbix nunca se comunica con Vault para obtener ningún secreto que no sea credenciales de la base de datos. Los valores secretos en el proxy Zabbix se recuperan de Servidor Zabbix en cada sincronización de configuración y almacenado en la configuración caché de la misma manera que en el servidor Zabbix.

Eso significa que un proxy Zabbix no puede iniciar la recopilación de datos después de un reinicio hasta que reciba la actualización de datos de configuración del servidor Zabbix para la primera vez. El cifrado debe estar habilitado entre el servidor Zabbix y apoderado; de lo contrario, se registra un mensaje de advertencia del servidor.

Credenciales de la base de datos

Es compatible para almacenar las credenciales de la base de datos utilizadas por el servidor Zabbix, proxies y frontend en secreto en Vault:

  • Los parámetros relacionados con la bóveda para recuperar las credenciales de la base de datos se pueden opcionalmente ingresado en el frontend instalación asistente.

Las credenciales de la base de datos recuperadas de Vault serán almacenadas en caché por el Interfaz. Tenga en cuenta que el directorio de archivos temporales del sistema de archivos se utiliza para almacenamiento en caché de credenciales de base de datos en la interfaz. Puedes usar el ZBX_DATA_CACHE_TTL constante a controlar la frecuencia con la que se actualiza/invalida la memoria caché de datos.

  • Para servidor/proxy se puede utilizar el parámetro de configuración VaultDBPath para especificar la ruta desde donde se crearán las credenciales para la base de datos recuperado por las claves 'contraseña' y 'nombre de usuario' (por ejemplo: secreto/zabbix/base de datos).

Los siguientes comandos se pueden utilizar para establecer los valores de la ruta mencionado en el ejemplo:

# Habilite el punto de montaje "secret/" si aún no está habilitado, tenga en cuenta que se debe usar "kv-v2"
       $ secretos de la bóveda habilitar -ruta=secreto/ kv-v2
       
       # Coloque nuevos secretos con las claves de nombre de usuario y contraseña en el punto de montaje "secret/" y la ruta "secret/zabbix/database"
       $ bóveda kv poner secreto/zabbix/base de datos nombre de usuario=zabbix contraseña=<contraseña>
       
       # Probar que el secreto se agregó con éxito
       $ bóveda kv obtener secreto/zabbix/base de datos
       
       # Finalmente pruebe con Curl, tenga en cuenta que los "datos" deben agregarse manualmente después del punto de montaje y "/v1" antes del punto de montaje, también vea el parámetro --capath
       $ curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database

Parámetros de configuración

Para el servidor/proxy Zabbix se han agregado nuevos parámetros de configuración para Autenticación de Vault y recuperación de credenciales de la base de datos:

  • VaultToken - Token de autenticación de Vault (ver Zabbix servidor/proxy archivo de configuración para más detalles)
  • VaultURL - Servidor de Vault HTTP[S] URL
  • VaultDBPath: ruta de la bóveda desde donde se almacenarán las credenciales para la base de datos recuperado por las claves 'contraseña' y 'nombre de usuario' (por ejemplo: secreto/zabbix/base de datos)

El servidor Zabbix y el proxy Zabbix leen la configuración relacionada con Vault parámetros de zabbix_server.conf y zabbix_proxy.conf al inicio.

El servidor Zabbix y el proxy Zabbix también leerán "VAULT_TOKEN" variable de entorno una vez durante el inicio y desactívela para que no estar disponible a través de scripts bifurcados; es un error si ambos VaultToken y VAULT_TOKEN contienen valor.

La barra oblicua y los dos puntos son símbolos reservados. Barra inclinada solo se puede usar para separar el punto de montaje de la ruta (por ejemplo, secret/zabbix donde punto de montaje es "secreto" y "zabbix" es ruta) y, en caso de Macros de Vault, los dos puntos solo se pueden usar para separar la ruta de la clave. Está posible codificar URL "/" y ":" si es necesario crear un montaje punto con nombre que está separado por una barra diagonal (por ejemplo, foo/bar/zabbix donde el punto de montaje es "foo/bar" y la ruta es "zabbix" como "foo%2Fbar/zabbix") y si el nombre del punto de montaje o la ruta deben contener colon.

Configuración de TLS

Se debe agregar un certificado firmado por una autoridad de certificación (CA) a el almacén de CA predeterminado. Alternativamente, una ubicación de tienda de CA personalizada puede ser especificado mediante el parámetro de configuración SSLCALocation; tenga en cuenta que en en este caso, el directorio del certificado debe prepararse utilizando el método openssl utilidad c_rehash, por ejemplo configurar SSLCALocation y copiar "ca.pem" dentro de ese directorio, luego ejecute el siguiente comando:

$c_rehash.