1 Настройка CyberArk

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

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

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

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

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

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

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

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

Параметры конфигурации Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFile и VaultPrefix также используются для аутентификации в хранилище секретов при обработке макросов хранилища секретов сервером Zabbix (и прокси 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. Затем заполните дополнительные параметры:
Параметр Обязательный Значение по умолчанию Описание
Конечная точка API хранилища да https://localhost:1858 Укажите URL для подключения к хранилищу в формате scheme://host:port
Префикс хранилища нет /AIMWebService/api/Accounts? Укажите пользовательский префикс для пути или запроса хранилища. Если не указан, используется значение по умолчанию.
Строка запроса секрета хранилища да Запрос, который определяет, откуда должны быть получены учетные данные базы данных.
Пример: AppID=foo&Query=Safe=bar;Object=buzz
Сертификаты хранилища нет После установки флажка появятся дополнительные параметры, позволяющие настроить аутентификацию клиента. Хотя этот параметр является необязательным, настоятельно рекомендуется включить его для взаимодействия с CyberArk Vault.
Файл SSL-сертификата нет conf/certs/cyberark-cert.pem Путь к файлу SSL-сертификата. Файл должен быть в формате PEM.
Если файл сертификата также содержит закрытый ключ, оставьте параметр файла SSL-ключа пустым.
Файл SSL-ключа нет conf/certs/cyberark-key.pem Имя файла закрытого SSL-ключа, используемого для аутентификации клиента. Файл должен быть в формате PEM.

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

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

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

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

Подробную информацию об обработке значений макросов Zabbix см. в разделе Макросы Vault secret.

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

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

Если сам запрос содержит прямую косую черту или двоеточие, эти символы должны быть закодированы в формате 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 или прокси, как описано в разделе Учетные данные базы данных.

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

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