Esta sección explica cómo configurar Zabbix para recuperar secretos de HashiCorp Vault KV Secrets Engine - Versión 2.
La bóveda debe implementarse y configurarse como se describe en la [documentación de HashiCorp] oficial (https://www.vaultproject.io/docs/secrets/kv/kv-v2).
Para obtener información sobre cómo configurar TLS en Zabbix, consulte Almacenamiento de secretos.
Para recuperar un secreto con credenciales de la base de datos correctamente, es necesario configurar ambos:
Para configurar el servidor o proxy Zabbix, especifique los siguientes parámetros de configuración en el archivo de configuración:
Vault
- qué proveedor de bóveda se debe utilizar;VaultToken
- token de autenticación de bóveda (consulte el archivo de configuración del servidor/proxy Zabbix para obtener más detalles);VaultURL
- URL HTTP[S] del servidor de bóveda;VaultDBPath
- ruta al secreto de bóveda que contiene las credenciales de la base de datos; El servidor o proxy Zabbix recuperará las credenciales mediante las claves "contraseña" y "nombre de usuario";VaultPrefix
- prefijo personalizado para la ruta o consulta de la bóveda, según la bóveda; si no se especifica, se utilizará el valor predeterminado más adecuado.El servidor Zabbix también utiliza los parámetros de configuración Vault
, VaultToken
, VaultURL
y VaultPrefix
para la autenticación de la bóveda al procesar macros de secretos de la bóveda.
El servidor Zabbix y el proxy Zabbix leen los parámetros de configuración relacionados con la bóveda desde zabbix_server.conf y zabbix_proxy.conf al iniciarse. Además, el servidor Zabbix y el proxy Zabbix leerán la variable de entorno VAULT_TOKEN
una vez durante el inicio y la anularán para que no esté disponible a través de scripts bifurcados; es un error si los parámetros VaultToken
y VAULT_TOKEN
contienen un valor.
:::noteclassic El servidor Zabbix o el proxy admiten renovaciones automáticas de tokens de servicio y tokens de servicio periódicos. Si Zabbix detecta que un token es renovable, seguirá renovándolo automáticamente hasta que se alcance el TTL máximo del token o, en el caso de tokens de servicio periódico, de manera indefinida. ::
Ejemplo
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=database
VaultPrefix=/v1/secret/data/zabbix/
# Habilite el punto de montaje "secret/" si aún no está habilitado; tenga en cuenta que se debe utilizar "kv-v2".
vault secrets enable -path=secret/ kv-v2
# Coloque los nuevos secretos con las claves nombre de usuario y contraseña en el punto de montaje "secret/" y la ruta "zabbix/database".
vault kv put -mount=secret zabbix/database username=zabbix password=<password>
# Pruebe que el secreto se haya agregado correctamente.
vault kv get zabbix/database
# Finalmente, pruebe con Curl; tenga en cuenta que "data" debe agregarse manualmente después del punto de montaje y "/v1" antes del punto de montaje; consulte también el parámetro --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database
La interfaz de usuario de Zabbix se puede configurar para recuperar las credenciales de la base de datos del almacén ya sea durante la instalación de la interfaz de usuario o actualizando el archivo de configuración de la interfaz de usuario (zabbix.conf.php
).
Si las credenciales del almacén se han modificado desde la instalación anterior de la interfaz de usuario, vuelva a ejecutar la instalación de la interfaz de usuario o actualice zabbix.conf.php
. Consulte también: Actualización de la configuración existente.
Durante la instalación de la interfaz de usuario, los parámetros de configuración se deben especificar en el paso Configurar conexión a la base de datos:
Parámetro | Obligatorio | Valor predeterminado | Descripción |
---|---|---|---|
Punto final de la API de la bóveda | sí | https://localhost:8200 | Especifique la URL para conectarse al almacén en el formato scheme://host:port |
Prefijo de almacén | no | /v1/secret/data/zabbix/ | Proporcione un prefijo personalizado para la ruta o consulta del almacén. Si no se especifica, se utiliza el valor predeterminado. |
Ruta del secreto de la bóveda | no | Una ruta al secreto desde donde se recuperarán las credenciales para la base de datos mediante las claves "contraseña" y "nombre de usuario". Ejemplo: database |
|
Token de autenticación de la bóveda | no | Proporcione un token de autenticación para acceso de solo lectura a la ruta secreta. Consulte la documentación de HashiCorp para obtener información sobre la creación de tokens y políticas de la bóveda. |
Para usar HashiCorp Vault para almacenar valores de macro de usuario secretos de Vault, asegúrese de que:
Solo el servidor Zabbix requiere acceso a los valores de macro secretos de Vault desde la bóveda. Otros componentes de Zabbix (proxy, frontend) no necesitan dicho acceso.
El valor de la macro debe contener una ruta de referencia (como ruta:clave
, por ejemplo, zabbix:password
). El token de autenticación especificado durante la configuración del servidor Zabbix (mediante el parámetro VaultToken
) debe proporcionar acceso de solo lectura a esta ruta.
Consulte Macros secretas de Vault para obtener información detallada sobre el procesamiento de valores de macro por parte de Zabbix.
Sintaxis de ruta
Los símbolos de barra diagonal ("/") y dos puntos (":") están reservados.
Una barra diagonal solo se puede utilizar para separar un punto de montaje de una ruta (por ejemplo, secret/zabbix donde el punto de montaje es "secreto" y la ruta es "zabbix"). En el caso de las macros de Vault, los dos puntos solo se pueden utilizar para separar una ruta/consulta de una clave.
Es posible codificar en URL los símbolos de barra diagonal y dos puntos si es necesario crear un punto de montaje con el nombre separado por una barra diagonal (por ejemplo, foo/bar/zabbix, donde el punto de montaje es " foo/bar" y la ruta es "zabbix", se puede codificar como "foo%2Fbar/zabbix") y si el nombre del punto de montaje o la ruta deben contener dos puntos.
Ejemplo
zabbix:password
# Habilite el punto de montaje "secret/" si aún no está habilitado; tenga en cuenta que se debe usar "kv-v2".
vault secrets enable -path=secret/ kv-v2
# Coloque el nuevo secreto con la contraseña de la clave en el punto de montaje "secret/" y la ruta "zabbix".
vault kv put -mount=secret zabbix password=<password>
# Pruebe que el secreto se haya agregado correctamente.
vault kv get secret/zabbix
# Finalmente, pruebe con Curl; Tenga en cuenta que "data" debe agregarse manualmente después del punto de montaje y "/v1" antes del punto de montaje; consulte también el parámetro --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix
Para actualizar una configuración existente para recuperar secretos de un almacén de HashiCorp:
Actualice los parámetros del archivo de configuración del servidor o proxy de Zabbix como se describe en la sección Credenciales de la base de datos.
Actualice la configuración de la conexión a la base de datos reconfigurando la interfaz de Zabbix y especificando los parámetros necesarios como se describe en la sección Interfaz. Para reconfigurar la interfaz de Zabbix, abra la URL de configuración de la interfaz en el navegador:
Alternativamente, estos parámetros se pueden configurar en el archivo de configuración de la interfaz (zabbix.conf.php):
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_DB_PATH'] = 'database';
$DB['VAULT_TOKEN'] = '<mytoken>';
$DB['VAULT_CERT_FILE'] = '';
$DB['VAULT_KEY_FILE'] = '';
$DB['VAULT_PREFIX'] = '/v1/secret/data/zabbix/';
Para actualizar una configuración existente para recuperar secretos de una bóveda de CyberArk, consulte Configuración de CyberArk.