Овај одељак објашњава како да конфигуришете Zabbix за преузимање тајни из HashiCorp Vault KV Secrets Engine - верзија 2.
Трезор треба да буде распоређен и конфигурисан као што је описано у званичној HashiCorp документацији.
Да бисте сазнали више о конфигурисању TLS-а у Zabbix-у, погледајте Складиштење тајни.
To retrieve a secret with database credentials successfully, it is required to configure both:
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.
Пример
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=database
VaultPrefix=/v1/secret/data/zabbix/
# Омогућите тачку монтирања "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
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:
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. |
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") и ако име или путања тачке монтирања морају да садрже двотачку.
Пример
macros:password
# Омогући "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
Да бисте ажурирали постојећу конфигурацију за преузимање тајни из HashiCorp трезора:
Ажурирајте параметре Zabbix сервера или проксија конфигурационе датотеке као што је описано у одељку Database credentials.
Ажурирајте подешавања везе са базом података тако што ћете поново конфигурисати Zabbix кориснички интерфејс и навести потребне параметре као што је описано у одељку Frontend.
Да бисте поново конфигурисали Zabbix кориснички интерфејс, отворите URL адресу за подешавање корисничког интерфејса у прегледачу:
Алтернативно, ови параметри се могу подесити у датотеци за конфигурацију корисничког интерфејса (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/';
Да бисте ажурирали постојећу конфигурацију за преузимање тајни из CyberArk трезора, погледајте CyberArk конфигурација.