Конфигурация CyberArk

В этом разделе объясняется, как настроить Zabbix для получения секретов из CyberArk Vault CV12.

Хранилище должно быть установлено и настроено в соответствии с официальной документацией CyberArk.

Чтобы узнать о настройке TLS в Zabbix, см. Хранение секретов.

Учетные данные базы данных

Доступ к секрету с учетными данными базы данных настраивается отдельно для каждого компонента Zabbix.

Сервер и прокси

Чтобы получить учетные данные базы данных из хранилища для Zabbix server или proxy, укажите следующие параметры конфигурации в файле конфигурации:

  • Vault - какой поставщик хранилища следует использовать;
  • VaultURL - HTTP[S]-URL сервера хранилища;
  • VaultDBPath - запрос к секрету хранилища, содержащему учетные данные базы данных, которые будут получены по ключам "Content" и "UserName" (этот параметр можно использовать только если не указаны DBUser и DBPassword);
  • VaultTLSCertFile, VaultTLSKeyFile - имена файлов SSL-сертификата и ключа; настройка этих параметров не обязательна, но настоятельно рекомендуется;
  • VaultPrefix - пользовательский префикс для пути или запроса к хранилищу, в зависимости от хранилища; если не указан, будет использован наиболее подходящий вариант по умолчанию.

Параметры конфигурации Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFile и VaultPrefix также используются для аутентификации в хранилище при обработке макросов секретов хранилища сервером Zabbix (и прокси Zabbix, если настроен). Сервер Zabbix и прокси не будут открывать макросы секретов хранилища, которые содержат учетные данные базы данных из VaultDBPath.

Сервер Zabbix и прокси Zabbix считывают параметры конфигурации, связанные с хранилищем, из файлов zabbix_server.conf и zabbix_proxy.conf при запуске.

Пример
  1. В zabbix_server.conf укажите следующие параметры:
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 отправит в хранилище следующий 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. Ответ хранилища будет содержать ключи "Content" и "UserName":
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database": <Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. В результате Zabbix будет использовать следующие учетные данные для аутентификации в базе данных:
  • Имя пользователя: <username>
  • Пароль: <password>

Веб-интерфейс

Чтобы получить учетные данные базы данных из хранилища для веб-интерфейса Zabbix, укажите следующие параметры во время установки веб-интерфейса.

  1. На шаге Configure DB Connection установите для параметра Store credentials in значение CyberArk Vault.

  1. Затем заполните дополнительные параметры:
Parameter Mandatory Default value Description
Vault API endpoint yes https://localhost:1858 Укажите URL для подключения к хранилищу в формате scheme://host:port
Vault prefix no /AIMWebService/api/Accounts? Укажите пользовательский префикс для пути или запроса к хранилищу. Если параметр не указан, используется значение по умолчанию.
Vault secret query string yes Запрос, указывающий, откуда следует получить учетные данные базы данных.
Пример: AppID=foo&Query=Safe=bar;Object=buzz
Vault certificates no После установки флажка появятся дополнительные параметры, позволяющие настроить аутентификацию клиента. Хотя этот параметр необязателен, настоятельно рекомендуется включить его для обмена данными с CyberArk Vault.
SSL certificate file no conf/certs/cyberark-cert.pem Путь к файлу сертификата SSL. Файл должен быть в формате PEM.
Если файл сертификата также содержит закрытый ключ, оставьте параметр SSL key file пустым.
SSL key file no conf/certs/cyberark-key.pem Имя файла закрытого ключа SSL, используемого для аутентификации клиента. Файл должен быть в формате PEM.

Значения пользовательских макросов

Чтобы использовать CyberArk Vault для хранения значений пользовательских макросов Vault secret, убедитесь, что:

Сервер Zabbix (и прокси Zabbix, если настроен) требует доступа к значениям макросов Vault secret из хранилища. Веб-интерфейс Zabbix не нуждается в таком доступе.

Значение макроса должно содержать запрос (в формате query:key).

См. Vault secret macros для подробной информации о том, как Zabbix обрабатывает значение макроса.

Синтаксис запроса

Символ двоеточия (:) зарезервирован для отделения запроса от ключа.

Если сам запрос содержит косую черту или двоеточие, эти символы необходимо закодировать в URL (/ кодируется как %2F, : кодируется как %3A).

Пример

  1. В Zabbix добавьте пользовательский макрос {$PASSWORD} типа Секрет Vault со значением AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

  1. Zabbix отправит в хранилище следующий запрос 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. Ответ хранилища будет содержать ключ Content:
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database" :<Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. В результате Zabbix подставит в макрос {$PASSWORD} значение <password>

Обновление существующей конфигурации

Чтобы обновить существующую конфигурацию для получения секретов из CyberArk Vault:

  1. Обновите параметры конфигурационного файла сервера или прокси Zabbix, как описано в разделе Учетные данные базы данных.

  2. Обновите параметры конфигурационного файла веб-интерфейса 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. При необходимости настройте пользовательские макросы, как описано в разделе Значения пользовательских макросов.

Чтобы обновить существующую конфигурацию для получения секретов из HashiCorp Vault, см. раздел Конфигурация HashiCorp.