This is a translation of the original English documentation page. Help us make it better.

2 HashiCorp конфигурација

Преглед

Овај одељак објашњава како да конфигуришете Zabbix за преузимање тајни из HashiCorp Vault KV Secrets Engine - верзија 2.

Трезор треба да буде распоређен и конфигурисан као што је описано у званичној HashiCorp документацији.

Да бисте сазнали више о конфигурисању TLS-а у Zabbix-у, погледајте Складиштење тајни.

Retrieving database credentials

To retrieve a secret with database credentials successfully, it is required to configure both:

  • Zabbix server/proxy
  • Zabbix frontend
Server/proxy

To configure Zabbix server or proxy, specify the following configuration parameters in the configuration file:

  • Vault - which vault provider should be used;
  • VaultToken - vault authentication token (see Zabbix server/proxy configuration file for details);
  • VaultURL - vault server HTTP[S] URL;
  • VaultDBPath - path to the vault secret containing database credentials; Zabbix server or proxy will retrieve the credentials by keys "password" and "username";
  • VaultPrefix - custom prefix for the vault path or query, depending on the vault; if not specified, the most suitable default will be used.

Zabbix server also uses the Vault, VaultToken, VaultURL, and VaultPrefix configuration parameters for vault authentication when processing vault secret macros.

Zabbix server and Zabbix proxy read the vault-related configuration parameters from zabbix_server.conf and zabbix_proxy.conf upon startup. Additionally, Zabbix server and Zabbix proxy will read the VAULT_TOKEN environment variable once during startup and will unset it so that it would not be available through forked scripts; it is an error if both VaultToken and VAULT_TOKEN parameters contain a value.

Пример

  1. У zabbix_server.conf, наведите следеће параметре:
Vault=HashiCorp
       VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
       VaultURL=https://127.0.0.1:8200
       VaultDBPath=database
       VaultPrefix=/v1/secret/data/zabbix/
  1. Покрените следеће CLI команде да бисте креирали потребну тајну у трезору:
# Омогућите тачку монтирања "secret/" ако већ није омогућена; имајте на уму да се мора користити "kv-v2".
       vault secrets enable -path=secret/ kv-v2
       
       # Ставите нове тајне са кључевима корисничко име и лозинка под тачку монтирања "secret/" и путању "zabbix/database".
       vault kv put -mount=secret zabbix/database username=zabbix password=<password>
       
       # Проверите да ли је тајна успешно додата.
       vault kv get secret/zabbix/database
       
       # На крају тестирајте са Curl-ом; имајте на уму да "data" треба ручно додати после тачке монтирања, а "/v1" пре тачке монтирања, погледајте и параметар --capath.
       curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database
  1. Као резултат тога, Zabbix сервер ће преузети следеће акредитиве за аутентификацију базе података:
  • Username: zabbix
  • Password: <password>
Frontend

Zabbix frontend can be configured to retrieve database credentials from the vault either during frontend installation or by updating the frontend configuration file (zabbix.conf.php).

If vault credentials have been changed since the previous frontend installation, rerun the frontend installation or update zabbix.conf.php. See also: Updating existing configuration.

During frontend installation the configuration parameters must be specified at the Configure DB Connection step:

  • Set the Store credentials in parameter to "HashiCorp Vault".
  • Specify the connection parameters:
Parameter Mandatory Default value Description
Vault API endpoint yes https://localhost:8200 Specify the URL for connecting to the vault in the format scheme://host:port
Vault prefix no /v1/secret/data/ Provide a custom prefix for the vault path or query. If not specified, the default is used.
Vault secret path no A path to the secret from where credentials for the database shall be retrieved by the keys "password" and "username".
Example: secret/zabbix/database
Vault authentication token no Provide an authentication token for read-only access to the secret path.
See HashiCorp documentation for information about creating tokens and vault policies.

Retrieving user macro values

To use HashiCorp Vault for storing Vault secret user macro values, make sure that:

Only Zabbix server requires access to Vault secret macro values from the vault. Other Zabbix components (proxy, frontend) do not need such access.

The macro value should contain a reference path (as path:key, for example, secret/zabbix:password). The authentication token specified during Zabbix server configuration (by the VaultToken parameter) must provide read-only access to this path.

See Vault secret macros for detailed information on macro value processing by Zabbix.

Синтакса путање

Симболи коса црта ("/") и двотачка (":") су резервисани.

Коса црта може се користити само за одвајање тачке монтирања од путање (нпр. secret/zabbix где је тачка монтирања "secret", а путања "zabbix"). У случају Vault макроа, двотачка се може користити само за одвајање путање/упита од кључа.

Могуће је URL-кодирати симболе косе црте и двотачке ако постоји потреба за креирањем тачке монтирања са именом које је одвојено косом цртом (нпр. foo/bar/zabbix, где је тачка монтирања "foo/bar", а путања "zabbix", може се кодирати као "foo%2Fbar/zabbix") и ако име или путања тачке монтирања морају да садрже двотачку.

Пример

  1. У Zabbix-у додајте кориснички макро {$PASSWORD} типа "Тајна трезора" и са вредношћу macros:password

  1. Покрените следеће CLI команде да бисте креирали потребну тајну у трезору:
# Омогући "secret/" тачку монтирања ако већ није омогућена; имајте на уму да се мора користити "kv-v2".
       тајне трезора омогућавају -path=secret/ kv-v2
       
       # Ставите нову тајну са кључном "лозинком" под тачку монтирања "secret/" и путању "zabbix/macros".
       vault kv put -mount=secret zabbix password=<password>
       
       # Тестирајте да је тајна успешно додата.
       vault kv get secret/zabbix/macros
       
       # Коначно тестирајте са Curl; имајте на уму да "податке" треба ручно додати после тачке монтирања и "/v1" пре тачке монтирања, такође погледајте параметар --capath.
       curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/macros
  1. Као резултат тога, Zabbix ће разрешити макро {$PASSWORD} на вредност: <password>

Ажурирање постојеће конфигурације

Да бисте ажурирали постојећу конфигурацију за преузимање тајни из HashiCorp трезора:

  1. Ажурирајте параметре Zabbix сервера или проксија конфигурационе датотеке као што је описано у одељку Database credentials.

  2. Ажурирајте подешавања везе са базом података тако што ћете поново конфигурисати Zabbix кориснички интерфејс и навести потребне параметре као што је описано у одељку Frontend.

Да бисте поново конфигурисали Zabbix кориснички интерфејс, отворите URL адресу за подешавање корисничког интерфејса у прегледачу:

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

Алтернативно, ови параметри се могу подесити у датотеци за конфигурацију корисничког интерфејса (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/';
  1. Конфигуришите корисничке макрое као што је описано у одељку Вредности корисничких макроа, ако је потребно.

Да бисте ажурирали постојећу конфигурацију за преузимање тајни из CyberArk трезора, погледајте CyberArk конфигурација.