[comment]: # ({9a839c05-f9e8f670})
# 4. Скрытые пользовательские макросы 

[comment]: # ({/9a839c05-f9e8f670})

[comment]: # ({1ec59739-8b3f0169})
#### Обзор

Zabbix предоставляет два варианта защиты конфиденциальной информации в значениях пользовательских макросов:

-   Скрытый текст
-   Секрет хранилища

::: noteclassic
Хотя значение скрытого макроса и спрятано, его можно раскрыть посредством использования в элементах данных.
Например, во внешнем скрипте оператор `echo`, ссылающийся на скрытый макрос, может использоваться для раскрытия значения макроса в веб-интерфейсе, поскольку сервер Zabbix имеет доступ к реальному значению макроса.
Смотрите [местоположения](#незамаскированные-местоположения), где значения скрытых макросов не замаскированы.
:::

Скрытые макросы нельзя использовать в выражениях триггеров.

[comment]: # ({/1ec59739-8b3f0169})

[comment]: # ({cc2edd9c-740aad18})
#### Скрытый текст

В макросах скрытого текста значения макроса маскируются звёздочками.

Чтобы сделать значение макроса «скрытым», нажмите кнопку в конце поля *Значение (Value)* и выберите опцию *Скрытый текст (Secret text)*:

![](../../../../assets/en/manual/config/macros/macro_value_type.png)

После сохранения настроек просмотреть значение больше не получится.

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

![](../../../../assets/en/manual/config/macros/macro_type_secret2.png)

При нажатии кнопки *Задать новое значение (Set new value)* (или изменении типа значения макроса) текущее значение будет стёрто.
Можно вернуть исходное значение, нажав стрелку ![](../../../../assets/en/manual/config/macros/macro_type_secret3.png) в конце поля *Значение (Value)* (доступно только до сохранения новой конфигурации).
Обратите внимание, что возврат исходного значения не раскроет его. 

::: noteclassic
 URL-адреса, которые содержат скрытый макрос, не будут работать, так как макрос в них будет раскрыт в виде «\*\*\*\*\*\*». 
::: 

[comment]: # ({/cc2edd9c-740aad18})

[comment]: # ({5897e6d9-480b89ed})
#### Секрет Хранилища

С макросами секрета Хранилища значение макроса хранится во внешнем программном обеспечении управления секретами (хранилище, vault). 

Чтобы настроить макрос секрета Хранилища, нажмите кнопку в конце поля *Значение (Value)* и выберите опцию *Секрет хранилища (Vault secret)*.

![](../../../../assets/en/manual/config/macros/macro_value_type1.png) 

Значение макроса должно указывать на секрет хранилища.
Формат ввода зависит от поставщика хранилища. Примеры конфигурации, специфичные для поставщика, смотрите:

- [HashiCorp](/manual/config/secrets/hashicorp#извлечение-значений-пользовательских-макросов)
- [CyberArk](/manual/config/secrets/cyberark#значения-пользовательских-макросов)

[comment]: # ({/5897e6d9-480b89ed})

[comment]: # ({54bb4ce1-94cba921})
Значения макросов секретов Vault извлекаются из хранилища Zabbix server (и Zabbix proxy, если для *Resolve secret vault macros by* [установлено](/manual/web_interface/frontend_sections/administration/general#other) значение *Zabbix server and proxy*) при каждом обновлении данных конфигурации и затем сохраняются в кэше конфигурации.  
Zabbix server и Zabbix proxy могут использовать разные хранилища.

Если для *Resolve secret vault macros by* [установлено](/manual/web_interface/frontend_sections/administration/general#other) значение *Zabbix server*, то секреты Vault извлекаются только сервером, а Zabbix proxy получает значения макросов секретов Vault от Zabbix server при каждой синхронизации конфигурации и сохраняет их в собственном кэше конфигурации.  
Это означает, что Zabbix proxy не может начать сбор данных после перезапуска, пока не получит обновление конфигурации от Zabbix server.

Чтобы вручную обновить значения секретов из хранилища, используйте опцию `secrets_reload` [runtime control](/manual/concepts/server#runtime-control) (только сервер).

Между Zabbix server и proxy должно быть включено шифрование; в противном случае в журнале будет записано предупреждающее сообщение сервера.

::: notewarning
Если значение макроса не удается успешно получить, соответствующий элемент данных, использующий это значение, перейдет в состояние unsupported.
:::

[comment]: # ({/54bb4ce1-94cba921})

[comment]: # ({a7053bda-03aa95bd})
#### Немаскированные расположения

Этот список содержит расположения параметров, в которых значения секретных макросов не маскируются.

::: noteclassic
Значения секретных макросов останутся замаскированными в указанных ниже расположениях, если на них ссылаться косвенно.
Например, встроенные макросы {ITEM.KEY}, {ITEM.KEY<1-9>}, {LLDRULE.KEY} [built-in macros](/manual/appendix/macros/supported_by_location#items), используемые в типах элементов данных (параметры Script или Webhook), будут разрешаться в ключи элементов данных, содержащие замаскированные секретные макросы, например `net.tcp.port[******,******]` вместо `net.tcp.port[192.0.2.1,80]`.
:::

|Контекст|<|Параметр|
|-|----------|------------------------------|
|**Элементы данных, прототипы элементов данных, правила LLD**|<|<|
| |Элемент данных|*Параметры ключа элемента данных*|
|^|Прототип элемента данных|*Параметры ключа прототипа элемента данных*|
|^|Правило низкоуровневого обнаружения|*Параметры ключа элемента данных обнаружения*|
|^|Агент SNMP|*SNMP community*|
|^|^|*Имя контекста* (SNMPv3)|
|^|^|*Имя безопасности* (SNMPv3)|
|^|^|*Фраза-пароль аутентификации* (SNMPv3)|
|^|^|*Фраза-пароль конфиденциальности* (SNMPv3)|
|^|Агент HTTP|*URL*|
|^|^|*Поля запроса*|
|^|^|*Тело запроса*|
|^|^|*Заголовки*|
|^|^|*Имя пользователя*|
|^|^|*Пароль*|
|^|^|*Пароль ключа SSL*|
|^|Скрипт|*Параметры*|
|^|^|*Скрипт*|
|^|Браузер|*Параметры*|
|^|^|*Скрипт*|
|^|Мониторинг базы данных|*SQL-запрос*|
|^|Агент TELNET|*Скрипт*|
|^|^|*Имя пользователя*|
|^|^|*Пароль*|
|^|Агент SSH|*Скрипт*|
|^|^|*Имя пользователя*|
|^|^|*Пароль*|
|^|Простая проверка|*Имя пользователя*|
|^|^|*Пароль*|
|^|Агент JMX|*Имя пользователя*|
|^|^|*Пароль*|
|**Предварительная обработка значений элементов данных**|<|<|
| |Шаг предварительной обработки JavaScript|*Скрипт*|
|**Веб-сценарии**|<|<|
| |Веб-сценарий|*Значение переменной*|
|^|^|*Значение заголовка*|
|^|^|*URL*|
|^|^|*Значение поля запроса*|
|^|^|*Значение поля POST*|
|^|^|*Сырые данные POST*|
|^|Аутентификация веб-сценария|*Пользователь*|
|^|^|*Пароль*|
|^|^|*Пароль ключа SSL*|
|**Коннекторы**|<|<|
| |Коннектор|*URL*|
|^|^|*Имя пользователя*|
|^|^|*Пароль*|
|^|^|*Токен*|
|^|^|*HTTP-прокси*|
|^|^|*Файл SSL-сертификата*|
|^|^|*Файл SSL-ключа*|
|^|^|*Пароль ключа SSL*|
|**Сетевое обнаружение**|<|<|
| |SNMP|*SNMP community*|
|^|^|*Имя контекста* (SNMPv3)|
|^|^|*Имя безопасности* (SNMPv3)|
|^|^|*Фраза-пароль аутентификации* (SNMPv3)|
|^|^|*Фраза-пароль конфиденциальности* (SNMPv3)|
|**Глобальные скрипты**|<|<|
| |Вебхук|*JavaScript script*|
|^|^|*Значение параметра JavaScript script*|
|^|Telnet|*Имя пользователя*|
|^|^|*Пароль*|
|^|SSH|*Имя пользователя*|
|^|^|*Пароль*|
|^|Скрипт|*Скрипт*|
|**Типы элементов данных**|<|<|
| |Скрипт|*Параметры скрипта*|
|^|Вебхук|*Параметры*|
|**Управление IPMI**|<|<|
| |Узел сети|*Имя пользователя*|
|^|^|*Пароль*|

[comment]: # ({/a7053bda-03aa95bd})
