1 Konfiguracja CyberArk
W tej sekcji wyjaśniono, jak skonfigurować Zabbix do pobierania sekretów z CyberArk Vault CV12.
Vault powinien być zainstalowany i skonfigurowany zgodnie z opisem w oficjalnej dokumentacji CyberArk.
Aby dowiedzieć się więcej o konfiguracji TLS w Zabbix, zobacz Przechowywanie sekretów.
Dane uwierzytelniające bazy danych
Dostęp do sekretu zawierającego dane uwierzytelniające bazy danych jest konfigurowany oddzielnie dla każdego komponentu Zabbix.
Serwer i proxy
Aby pobrać dane uwierzytelniające bazy danych z sejfu dla Zabbix serwer lub proxy, należy określić następujące parametry konfiguracyjne w pliku konfiguracyjnym:
Vault- który dostawca sejfu ma być używany;VaultURL- adres URL HTTP[S] serwera sejfu;VaultDBPath- zapytanie do sekretu sejfu zawierającego dane uwierzytelniające bazy danych, które zostaną pobrane przy użyciu kluczy "Content" i "UserName" (tej opcji można użyć tylko wtedy, gdy nie określono DBUser i DBPassword);VaultTLSCertFile,VaultTLSKeyFile- nazwy plików certyfikatu SSL i klucza; skonfigurowanie tych opcji nie jest obowiązkowe, ale jest zdecydowanie zalecane;VaultPrefix- niestandardowy prefiks ścieżki lub zapytania sejfu, w zależności od sejfu; jeśli nie zostanie określony, użyta zostanie najbardziej odpowiednia wartość domyślna.
Parametry konfiguracyjne Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFile oraz VaultPrefix są również używane do uwierzytelniania w sejfie podczas przetwarzania makr sekretów sejfu przez Zabbix serwer (oraz Zabbix proxy, jeśli jest skonfigurowany). Zabbix serwer i proxy nie będą otwierać makr sekretów sejfu zawierających dane uwierzytelniające bazy danych z VaultDBPath.
Zabbix serwer i Zabbix proxy odczytują parametry konfiguracyjne związane z sejfem z plików zabbix_server.conf i zabbix_proxy.conf podczas uruchamiania.
Przykład
- W zabbix_server.conf określ następujące parametry:
Vault=CyberArk
VaultURL=https://127.0.0.1:1858
VaultDBPath=AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
VaultTLSCertFile=cert.pem
VaultTLSKeyFile=key.pem
VaultPrefix=/AIMWebService/api/Accounts?
- Zabbix wyśle do sejfu następujące żądanie API:
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
- Odpowiedź sejfu będzie zawierać klucze „Content” i „UserName”:
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database": <Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- W rezultacie Zabbix użyje następujących poświadczeń do uwierzytelniania w bazie danych:
- Nazwa użytkownika: <username>
- Hasło: <password>
Frontend
Aby uzyskać poświadczenia bazy danych z sejfu dla frontend Zabbix, podczas instalacji frontend należy określić następujące parametry.
- W kroku Configure DB Connection ustaw parametr Store credentials in na „CyberArk Vault”.

- Następnie uzupełnij dodatkowe parametry:
| Parametr | Wymagany | Wartość domyślna | Opis |
|---|---|---|---|
| Vault API endpoint | tak | https://localhost:1858 | Określ adres URL połączenia z sejfem w formacie scheme://host:port |
| Vault prefix | nie | /AIMWebService/api/Accounts? | Podaj niestandardowy prefiks dla ścieżki lub zapytania sejfu. Jeśli nie zostanie podany, użyta zostanie wartość domyślna. |
| Vault secret query string | tak | Zapytanie określające, skąd mają zostać pobrane poświadczenia bazy danych. Przykład: AppID=foo&Query=Safe=bar;Object=buzz |
|
| Vault certificates | nie | Po zaznaczeniu tego pola wyboru pojawią się dodatkowe parametry umożliwiające skonfigurowanie uwierzytelniania klienta. Chociaż ten parametr jest opcjonalny, zdecydowanie zaleca się jego włączenie do komunikacji z CyberArk Vault. | |
| SSL certificate file | nie | conf/certs/cyberark-cert.pem | Ścieżka do pliku certyfikatu SSL. Plik musi być w formacie PEM. Jeśli plik certyfikatu zawiera również klucz prywatny, pozostaw parametr SSL key file pusty. |
| SSL key file | nie | conf/certs/cyberark-key.pem | Nazwa pliku prywatnego klucza SSL używanego do uwierzytelniania klienta. Plik musi być w formacie PEM. |
Wartości makr użytkownika
Aby używać CyberArk Vault do przechowywania wartości makr użytkownika typu Vault secret, upewnij się, że:
- serwer Zabbix jest skonfigurowany do pracy z CyberArk Vault;
- parametr Vault provider w Administracja → Ogólne → Inne jest ustawiony na „CyberArk Vault”.

Serwer Zabbix (oraz proxy Zabbix, jeśli jest skonfigurowany) wymaga dostępu do wartości makr typu Vault secret z sejfu. Frontend Zabbix nie potrzebuje takiego dostępu.
Wartość makra powinna zawierać zapytanie (w postaci query:key).
Szczegółowe informacje o przetwarzaniu wartości makr przez Zabbix można znaleźć w sekcji Makra typu Vault secret.
Składnia zapytania
Dwukropek (":") jest zarezerwowany do oddzielania zapytania od klucza.
Jeśli samo zapytanie zawiera ukośnik lub dwukropek, symbole te powinny być zakodowane w formacie URL ("/" jest kodowany jako "%2F", ":" jest kodowany jako "%3A").
Przykład
- W Zabbix dodaj makro użytkownika {$PASSWORD} typu Vault secret o wartości
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

- Zabbix wyśle do sejfu następujące żądanie API:
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
- Odpowiedź sejfu będzie zawierać klucz "Content":
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database" :<Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- W rezultacie Zabbix rozwiąże makro {$PASSWORD} do wartości - <password>
Aktualizacja istniejącej konfiguracji
Aby zaktualizować istniejącą konfigurację pobierania sekretów z CyberArk Vault:
-
Zaktualizuj parametry pliku konfiguracyjnego serwera Zabbix lub proxy zgodnie z opisem w sekcji Dane logowania do bazy danych.
-
Zaktualizuj ustawienia połączenia z bazą danych, rekonfigurując frontend Zabbix i podając wymagane parametry zgodnie z opisem w sekcji Frontend. Aby ponownie skonfigurować frontend Zabbix, otwórz w przeglądarce URL konfiguracji frontendu:
- dla Apache: http://<server_ip_or_name>/zabbix/setup.php
- dla Nginx: http://<server_ip_or_name>/setup.php
Alternatywnie parametry te można ustawić w pliku konfiguracyjnym frontendu (zabbix.conf.php):
$DB['VAULT'] = 'CyberArk';
$DB['VAULT_URL'] = 'https://127.0.0.1:1858';
$DB['VAULT_DB_PATH'] = 'AppID=foo&Query=Safe=bar;Object=buzz';
$DB['VAULT_TOKEN'] = '';
$DB['VAULT_CERT_FILE'] = 'conf/certs/cyberark-cert.pem';
$DB['VAULT_KEY_FILE'] = 'conf/certs/cyberark-key.pem';
$DB['VAULT_PREFIX'] = '';
- W razie potrzeby skonfiguruj makra użytkownika zgodnie z opisem w sekcji Wartości makr użytkownika.
Aby zaktualizować istniejącą konfigurację pobierania sekretów z HashiCorp Vault, zobacz Konfiguracja HashiCorp.