4. Скрытые пользовательские макросы
Обзор
Zabbix предоставляет два варианта защиты конфиденциальной информации в значениях пользовательских макросов:
- Скрытый текст
- Секрет хранилища
Хотя значение скрытого макроса и спрятано, его можно раскрыть посредством использования в элементах данных.
Например, во внешнем скрипте оператор echo, ссылающийся на скрытый макрос, может использоваться для раскрытия значения макроса в веб-интерфейсе, поскольку сервер Zabbix имеет доступ к реальному значению макроса.
Смотрите местоположения, где значения скрытых макросов не замаскированы.
Скрытые макросы нельзя использовать в выражениях триггеров.
Секретный текст
При использовании макросов Secret text значение макроса маскируется звездочками.
Чтобы сделать значение макроса секретным, нажмите кнопку в конце поля Value и выберите параметр Secret text:

После сохранения конфигурации просмотреть значение больше не будет возможно.
Чтобы изменить значение макроса, наведите курсор на поле Value и нажмите кнопку Set new value (появляется при наведении):

При нажатии кнопки Set new value (или при изменении типа значения макроса) текущее значение будет удалено.
Вы можете восстановить исходное значение, нажав стрелку
в конце поля Value (доступно только до сохранения новой конфигурации).
Обратите внимание, что восстановление исходного значения не приведет к его раскрытию.
URL-адреса, содержащие секретный макрос, не будут работать, так как макрос в них будет преобразован в "******".
Секрет Vault
С помощью макросов Vault secret значение макроса хранится во внешнем программном обеспечении для управления секретами (vault).
Чтобы настроить макрос Vault secret, нажмите кнопку в конце поля Value и выберите опцию Vault secret:

Значение макроса должно указывать на секрет vault. Формат ввода зависит от поставщика vault. Примеры настройки для конкретных поставщиков см. в:
Значения макросов секретов Vault извлекаются из хранилища Zabbix server (и Zabbix proxy, если для параметра Resolve secret vault macros by задано значение Zabbix server and proxy) при каждом обновлении конфигурационных данных и затем сохраняются в кэше конфигурации.
Zabbix server и Zabbix proxy могут использовать разные хранилища.
Если для параметра Resolve secret vault macros by задано значение Zabbix server, то секреты Vault извлекаются только сервером, а Zabbix proxy получает значения макросов секретов Vault от Zabbix server при каждой синхронизации конфигурации и сохраняет их в собственном кэше конфигурации.
Это означает, что Zabbix proxy не может начать сбор данных после перезапуска, пока не получит обновление конфигурации от Zabbix server.
Чтобы вручную обновить значения секретов из хранилища, используйте параметр secrets_reload управления во время выполнения (только сервер).
Между Zabbix server и proxy должно быть включено шифрование; в противном случае в журнале будет записано предупреждающее сообщение сервера.
Если значение макроса не удается успешно получить, соответствующий элемент данных, использующий это значение, перейдет в состояние unsupported.
Немаскированные расположения
Этот список содержит расположения параметров, в которых значения секретных макросов не маскируются.
Значения секретных макросов останутся замаскированными в указанных ниже расположениях, если на них ссылаются косвенно.
Например, встроенные макросы}, {ITEM.KEY<1-9>}, {LLDRULE.KEY}, используемые в типах элементов данных (параметры Script или Webhook), будут разрешаться в ключи элементов данных, содержащие замаскированные секретные макросы, например net.tcp.port[******,******] вместо net.tcp.port[192.0.2.1,80].
| Контекст | Параметр | |
|---|---|---|
| Элементы данных, прототипы элементов данных, правила LLD | ||
| Элемент данных | Параметры ключа элемента данных | |
| Прототип элемента данных | Параметры ключа прототипа элемента данных | |
| Правило низкоуровневого обнаружения | Параметры ключа элемента обнаружения | |
| SNMP agent | SNMP community | |
| Context name (SNMPv3) | ||
| Security name (SNMPv3) | ||
| Authentication passphrase (SNMPv3) | ||
| Privacy passphrase (SNMPv3) | ||
| HTTP agent | URL | |
| Query fields | ||
| Request body | ||
| Headers | ||
| User name | ||
| Password | ||
| SSL key password | ||
| Script | Parameters | |
| Script | ||
| Browser | Parameters | |
| Script | ||
| Database monitor | SQL query | |
| TELNET agent | Script | |
| User name | ||
| Password | ||
| SSH agent | Script | |
| User name | ||
| Password | ||
| Simple check | User name | |
| Password | ||
| JMX agent | User name | |
| Password | ||
| Предварительная обработка значения элемента данных | ||
| Шаг предварительной обработки JavaScript | Script | |
| Веб-сценарии | ||
| Веб-сценарий | Variable value | |
| Header value | ||
| URL | ||
| Query field value | ||
| Post field value | ||
| Raw post | ||
| Аутентификация веб-сценария | User | |
| Password | ||
| SSL key password | ||
| Коннекторы | ||
| Коннектор | URL | |
| Username | ||
| Password | ||
| Token | ||
| HTTP proxy | ||
| SSL certificate file | ||
| SSL key file | ||
| SSL key password | ||
| Сетевое обнаружение | ||
| SNMP | SNMP community | |
| Context name (SNMPv3) | ||
| Security name (SNMPv3) | ||
| Authentication passphrase (SNMPv3) | ||
| Privacy passphrase (SNMPv3) | ||
| Глобальные скрипты | ||
| Вебхук | JavaScript script | |
| JavaScript script parameter value | ||
| Telnet | Username | |
| Password | ||
| SSH | Username | |
| Password | ||
| Script | Script | |
| Типы медиа | ||
| Script | Script parameters | |
| Вебхук | Parameters | |
| Управление IPMI | ||
| Узел сети | Username | |
| Password | ||