2 Configuración de HashiCorp

Descripción general

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.

Recuperando credenciales de base de datos

Para recuperar exitosamente un secreto con credenciales de base de datos, es necesario configurar ambos:

  • Servidor/proxy Zabbix
  • Interfaz de Zabbix
Servidor/proxy

Para configurar Zabbix servidor o proxy, 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";
  • 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 cuando se procesan 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.

Ejemplo

  1. En zabbix_server.conf, especifique los siguientes parámetros:
Bóveda=HashiCorp
       VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
       URL de la bóveda=https://127.0.0.1:8200
       VaultDBPath=secreto/zabbix/base de datos
       VaultPrefix=/v1/secreto/datos/
  1. Ejecute los siguientes comandos CLI para crear el secreto requerido en el almacén:
# Habilite el punto de montaje "secreto/" si aún no está habilitado; tenga en cuenta que se debe utilizar "kv-v2".
       los secretos de la bóveda habilitan -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 "zabbix/database".
       bóveda kv put -mount=secret zabbix/base de datos nombre de usuario=zabbix contraseña=<contraseña>

       # Pruebe que el secreto se haya agregado correctamente.
       bóveda kv obtener secreto/zabbix/base de datos

       # 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
  1. Como resultado, el servidor Zabbix recuperará las siguientes credenciales para la autenticación de la base de datos:
  • Nombre de usuario: zabbix
  • Contraseña: <contraseña>
Interfaz

La interfaz de Zabbix se puede configurar para recuperar las credenciales de la base de datos de la bóveda. ya sea durante la [instalación] del frontend (/manual/installation/frontend) o actualizando el archivo de configuración de interfaz (zabbix.conf.php).

Si las credenciales de la bóveda se cambiaron desde la instalación anterior del frontend, vuelva a ejecutar la instalación del frontend. o actualice zabbix.conf.php. Consulte también: Actualización de la configuración existente.

Durante la instalación frontend, los parámetros de configuración se deben especificar en el paso Configurar conexión de base de datos:

  • Establezca el parámetro Almacenar credenciales en en "HashiCorp Vault".
  • Especificar los parámetros de conexión:
Parámetro Obligatorio Valor predeterminado Descripción
Punto final de API de Vault https://localhost:8200 Especifique la URL para conectarse a la bóveda en el formato scheme://host:port
Prefijo de bóveda no /v1/secret/data/ Proporcione un prefijo personalizado para la ruta o consulta de la bóveda. Si no se especifica, se utiliza el valor predeterminado.
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.

Recuperando valores de macro de usuario

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.

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

  1. En Zabbix, agregue una macro de usuario {$PASSWORD} de tipo "Vault secret" y con el valor secret/zabbix:password

  1. Ejecute los siguientes comandos CLI para crear el secreto requerido en el almacén:
# Habilite el punto de montaje "secreto/" si aún no está habilitado; tenga en cuenta que se debe utilizar "kv-v2".
       los secretos de la bóveda habilitan -path=secret/ kv-v2

       # Coloque un nuevo secreto con contraseña clave en el punto de montaje "secret/" y la ruta "zabbix".
       bóveda kv put -mount=contraseña secreta de zabbix=<contraseña>

       # Pruebe que el secreto se haya agregado correctamente.
       bóveda kv obtener secreto/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
  1. Como resultado, Zabbix resolverá la macro {$PASSWORD} al valor: <contraseña>

Actualizando la configuración existente

Para actualizar una configuración existente para recuperar secretos de HashiCorp Vault:

  1. Actualice los parámetros del servidor Zabbix o del archivo de configuración del proxy como se describe en la sección Credenciales de base de datos.

  2. Actualice la configuración de la conexión de base de datos reconfigurando la interfaz de Zabbix y especificando los parámetros requeridos como se describe en la sección Frontend. Para reconfigurar la interfaz de Zabbix, abra la URL de configuración de la interfaz en el navegador:

  • para Apache: http://<server_ip_or_name>/zabbix/setup.php
  • para Nginx: http://<server_ip_or_name>/setup.php

Alternativamente, estos parámetros se pueden configurar en el archivo de configuración de frontend (zabbix.conf.php):

$DB['VAULT'] = 'HashiCorp';
       $DB['VAULT_URL'] = 'https://localhost:8200';
       $DB['VAULT_DB_PATH'] = 'secreto/zabbix/base de datos';
       $DB['VAULT_TOKEN'] = '<mitoken>';
       $DB['VAULT_CERT_FILE'] = '';
       $DB['VAULT_KEY_FILE'] = '';
       $DB['VAULT_PREFIX'] = '';
  1. Configure las macros de usuario como se describe en la sección Valores de macros de usuario, si es necesario.

Para actualizar una configuración existente para recuperar secretos de CyberArk Vault, consulte configuración de CyberArk.