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

Преглед

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

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

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

Преузимање креденцијала базе података

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

  • Zabbix сервер/прокси
  • Zabbix кориснички интерфејс
Сервер/прокси

Да бисте конфигурисали Zabbix сервер или прокси, наведите следеће параметре конфигурације у конфигурационој датотеци:

  • Vault - који провајдер трезора треба користити;
  • VaultToken - токен за аутентификацију трезора (погледајте конфигурациону датотеку Zabbix сервера/проксија за детаље);
  • VaultURL - HTTP[S] URL адреса Vault сервера;
  • VaultDBPath - путања до Vault тајне која садржи креденцијале базе података (ова опција се може користити само ако DBUser и DBPassword нису наведени); Zabbix сервер или прокси ће преузети креденцијале помоћу кључева "password" и "username";
  • VaultPrefix - прилагођени префикс за путању или упит до трезора, у зависности од трезора; ако није наведен, користиће се најприкладнији подразумевани префикс.

Параметри конфигурације Vault, VaultToken, VaultURL и VaultPrefix се такође користе за аутентификацију трезора приликом обраде тајног vault макроа од стране Zabbix сервера (и Zabbix проксија, ако је конфигурисан). Zabbix сервер и проксији неће отворити макрое тајног трезора који садрже DB креденцијале из VaultDBPath.

Препоручује се коришћење различитих токена за различите проксије.

Zabbix сервер и Zabbix прокси читају параметре конфигурације везане за Vault из zabbix_server.conf и zabbix_proxy.conf приликом покретања. Поред тога, Zabbix сервер и Zabbix прокси ће једном прочитати променљиву окружења VAULT_TOKEN током покретања и поништити је тако да не би била доступна кроз извршене скрипте; грешка је ако и параметри VaultToken и VAULT_TOKEN садрже вредност.

Пример

  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>
Кориснички интерфејс

Zabbix кориснички интерфејс може бити конфигурисан да преузима податке из базе података из Vault-а или током [инсталације] корисничког интерфејса (/manual/installation/frontend) или ажурирањем конфигурационе датотеке корисничког интерфејса (zabbix.conf.php).

Ако су подаци из Vault-а промењени од претходне инсталације корисничког интерфејса, поново покрените инсталацију фронтенда или ажурирајте zabbix.conf.php. Погледајте такође: Ажурирање постојеће конфигурације.

Током инсталације корисничког интерфејса параметри конфигурације морају бити наведени у кораку Конфигуриши везу са базом података:

  • Поставите параметар Чувај податке у на "HashiCorp Vault".
  • Наведите параметре повезивања:
Parameter Mandatory Default value
Vault API endpoint yes https://localhost:8200
Vault prefix no /v1/secret/data/
Vault secret path no
Vault authentication token no

Преузимање вредности корисничких макроа

Да бисте користили HashiCorp Vault за чување вредности корисничких макроа Vault secret, уверите се да:

Zabbix сервер (и Zabbix прокси, ако је конфигурисан) захтевају приступ вредностима макроа Vault secret из vault-а. Zabbix корисничком интерфејсу није потребан такав приступ.

Вредност макроа треба да садржи референтну путању (као што је path:key, на пример, macros:password). Токен за аутентификацију наведен током конфигурације Zabbix сервера/проксија (параметром VaultToken) мора да обезбеди приступ само за читање овој путањи.

Погледајте Vault тајне макрое за детаљне информације о обради вредности макроа од стране 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 конфигурација.