Konfiguracja CyberArk

Ta sekcja wyjaśnia, jak skonfigurować Zabbix do pobierania sekretów z CyberArk Vault CV12.

Vault powinien zostać zainstalowany i skonfigurowany zgodnie z opisem w oficjalnej dokumentacji CyberArk.

Aby dowiedzieć się, jak skonfigurować TLS w Zabbix, zobacz Przechowywanie sekretów.

Dane uwierzytelniające bazy danych

Dostęp do sekretu zawierającego dane uwierzytelniające bazy danych konfiguruje się osobno dla każdego komponentu Zabbix.

Serwer i proxy

Aby pobierać dane uwierzytelniające bazy danych z magazynu sekretów dla serwera Zabbix lub proxy, określ w pliku konfiguracyjnym następujące parametry:

  • Vault - dostawca magazynu sekretów, który ma być używany;
  • VaultURL - adres URL serwera magazynu sekretów w protokole HTTP(S);
  • VaultDBPath - zapytanie do sekretu w magazynie sekretów zawierającego dane uwierzytelniające bazy danych, które zostaną pobrane za pomocą kluczy „Content” i „UserName” (tej opcji można używać tylko wtedy, gdy nie określono DBUser i DBPassword);
  • VaultTLSCertFile, VaultTLSKeyFile - nazwy plików certyfikatu SSL i klucza; skonfigurowanie tych opcji nie jest wymagane, ale jest zdecydowanie zalecane;
  • VaultPrefix - niestandardowy prefiks ścieżki lub zapytania magazynu sekretów, zależnie od magazynu; jeśli nie zostanie określony, zostanie użyta najbardziej odpowiednia wartość domyślna.

Parametry konfiguracyjne Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFile i VaultPrefix są również używane do uwierzytelniania w magazynie sekretów podczas przetwarzania makr sekretów magazynu przez serwer Zabbix (oraz proxy Zabbix, jeśli zostało skonfigurowane). Serwer Zabbix i proxy nie otworzą makr sekretów magazynu zawierających dane uwierzytelniające bazy danych z VaultDBPath.

Serwer Zabbix i proxy Zabbix odczytują parametry konfiguracyjne związane z magazynem sekretów z plików zabbix_server.conf i zabbix_proxy.conf podczas uruchamiania.

Przykład
  1. W pliku 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?
  1. Zabbix wyśle do vault 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
  1. Odpowiedź vault będzie zawierać klucze "Content" i "UserName":
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database": <Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. 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ć dane uwierzytelniające do bazy danych z sejfu dla frontend Zabbix, określ następujące parametry podczas instalacji frontend.

  1. W kroku Configure DB Connection ustaw parametr Store credentials in na CyberArk Vault.

  1. Następnie uzupełnij dodatkowe parametry:
Parameter Mandatory Default value Description
Vault API endpoint yes https://localhost:1858 Określ adres URL połączenia z sejfem w formacie scheme://host:port
Vault prefix no /AIMWebService/api/Accounts? Podaj niestandardowy prefiks ścieżki lub zapytania sejfu. Jeśli nie zostanie określony, zostanie użyta wartość domyślna.
Vault secret query string yes Zapytanie określające, skąd powinny zostać pobrane dane uwierzytelniające do bazy danych.
Przykład: AppID=foo&Query=Safe=bar;Object=buzz
Vault certificates no Po zaznaczeniu pola wyboru pojawią się dodatkowe parametry umożliwiające skonfigurowanie uwierzytelniania klienta. Chociaż ten parametr jest opcjonalny, zdecydowanie zaleca się jego włączenie na potrzeby komunikacji z CyberArk Vault.
SSL certificate file no 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 no 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 Vault secret, upewnij się, że:

Serwer Zabbix (oraz proxy Zabbix, jeśli jest skonfigurowany) wymagają dostępu do wartości makr Vault secret z vault. Frontend Zabbix nie potrzebuje takiego dostępu.

Wartość makra powinna zawierać zapytanie (w formacie query:key).

Szczegółowe informacje o przetwarzaniu wartości makr przez Zabbix znajdziesz w sekcji Vault secret macros.

Składnia zapytania

Symbol dwukropka (:) jest zarezerwowany do oddzielania zapytania od klucza.

Jeśli zapytanie zawiera ukośnik lub dwukropek, symbole te należy zakodować w adresie URL (/ jest kodowany jako %2F, a : jako %3A).

Przykład

  1. W Zabbix dodaj makro użytkownika {$PASSWORD} typu Vault secret i ustaw jego wartość na AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

  1. Zabbix wyśle do magazynu 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
  1. Odpowiedź magazynu będzie zawierać klucz Content:
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database" :<Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. W rezultacie Zabbix rozwiąże makro {$PASSWORD} do wartości - <password>

Aktualizowanie istniejącej konfiguracji

Aby zaktualizować istniejącą konfigurację pobierania sekretów z CyberArk Vault:

  1. Zaktualizuj parametry pliku konfiguracyjnego serwera Zabbix lub proxy zgodnie z opisem w sekcji Dane uwierzytelniające bazy danych.

  2. Zaktualizuj parametry pliku konfiguracyjnego frontendu Zabbix:

$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']             = '';
  1. 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 sekcję Konfiguracja HashiCorp.