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 oficial de HashiCorp.
Para obtener información sobre cómo configurar TLS en Zabbix, consulte Almacenamiento de secretos.
This section explains how to configure Zabbix for retrieving secrets from HashiCorp Vault KV Secrets Engine - Version 2.
The vault should be deployed and configured as described in the official HashiCorp documentation.
To learn about configuring TLS in Zabbix, see Storage of secrets.
El acceso a un secreto con credenciales de base de datos se configura para cada componente de Zabbix por separado.
Para obtener las credenciales de la base de datos del almacén para 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 la bóveda que contiene las credenciales de la base de datos; El servidor o proxy de Zabbix recuperará las credenciales mediante las claves "contraseña" y "nombre de usuario".El servidor Zabbix también utiliza los parámetros de configuración Vault
, VaultToken
y VaultURL
para la autenticación de la bóveda al procesar macros secretas de la bóveda.
El servidor Zabbix y el proxy Zabbix leen los parámetros de configuración relacionados con la bóveda de zabbix_server.conf y zabbix_proxy.conf al inicio. Además, el servidor Zabbix y el proxy Zabbix leerán la variable de entorno VAULT_TOKEN
una vez durante el inicio y la desactivará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.
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=secret/zabbix/database
# Habilite el punto de montaje "secreto/" si aún no está habilitado; tenga en cuenta que se debe utilizar "kv-v2".
$ vault secrets enable -path=secret/ kv-v2
# Coloque nuevos secretos con claves de nombre de usuario y contraseña en el punto de montaje "secret/" y la ruta "secret/zabbix/database".
$ vault kv put secret/zabbix/database username=zabbix password=<password>
# Pruebe que el secreto se haya agregado correctamente.
$ vault kv get secret/zabbix/database
# Finalmente prueba con Curl; tenga en cuenta que los "datos" deben 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
Para obtener las credenciales de la base de datos de la bóveda para la interfaz de Zabbix, especifique los siguientes parámetros durante la instalación de la interfaz.
Parámetro | Obligatorio | Valor predeterminado | Descripción |
---|---|---|---|
Punto final de API de Vault | sí | https://localhost:8200 | Especifique la URL para conectarse a la bóveda en el formato scheme://host:port |
Ruta secreta de la bóveda | no | Una ruta al secreto desde donde se recuperarán las credenciales de la base de datos mediante las claves "contraseña" y "nombre de usuario". Ejemplo: secret/zabbix/database |
|
Token de autenticación de 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 cómo crear tokens y políticas de bóveda. |
Para utilizar HashiCorp Vault para almacenar valores de macro de usuario Vault secret, asegúrese de que:
Solo el servidor Zabbix requiere acceso a los valores de macro Vault secret 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, secret/zabbix:contraseña
). 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.
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 "secret" 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.
secret/zabbix:password
# Habilite el punto de montaje "secreto/" si aún no está habilitado; tenga en cuenta que se debe utilizar "kv-v2".
vault secrets enable -path=secret/ kv-v2
# Coloque un nuevo secreto con contraseña clave en el punto de montaje "secret/" y la ruta "secret/zabbix".
vault kv put secret/zabbix password=<contraseña>
# Pruebe que el secreto se haya agregado correctamente.
vault kv get secret/zabbix
# Finalmente prueba con Curl; tenga en cuenta que los "datos" deben 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
To update an existing configuration for retrieving secrets from a HashiCorp Vault:
Update the Zabbix server or proxy configuration file parameters as described in the Database credentials section.
Update the DB connection settings by reconfiguring Zabbix frontend and specifying the required parameters as described in the Frontend section. To reconfigure Zabbix frontend, open the frontend setup URL in the browser:
Alternatively, these parameters can be set in the frontend configuration file (zabbix.conf.php):
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_DB_PATH'] = 'secret/zabbix/database';
$DB['VAULT_TOKEN'] = '<mytoken>';
$DB['VAULT_CERT_FILE'] = '';
$DB['VAULT_KEY_FILE'] = '';
To update an existing configuration for retrieving secrets from a CyberArk Vault, see CyberArk configuration.