Конфигурация 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 secret со значением 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 или прокси, как описано в разделе 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']                    = '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. При необходимости настройте пользовательские макросы, как описано в разделе User macro values.

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