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 do bazy danych

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

Serwer i proxy

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

  • Vault - dostawca magazynu, który ma być używany;
  • VaultURL - adres URL HTTP(S) serwera magazynu;
  • VaultDBPath - zapytanie do sekretu magazynu zawierającego dane uwierzytelniające do 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 obowiązkowe, ale jest zdecydowanie zalecane;
  • VaultPrefix - niestandardowy prefiks ścieżki lub zapytania magazynu, 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 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 do bazy danych z VaultDBPath.

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

Przykład
  1. 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?
  1. 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
  1. Odpowiedź sejfu 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ć poświadczenia bazy danych z sejfu dla frontend Zabbix, podczas instalacji frontend należy określić następujące parametry.

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

  1. 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 (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

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

  1. 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
  1. Odpowiedź sejfu 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>

Aktualizacja 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 logowania do bazy danych.

  2. 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']             = '';
  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 Konfiguracja HashiCorp.