server-url

<vault>

Адрес хранилища секретов
в конфигурации это строкаserver-urlвнутри блока <vault>
Куда узел ходит за секретами

Строка называет сервер хранилища: схему, имя или адрес и, если нужно, порт.

Схема имеет значение. http означает, что токен и сами секреты идут по сети открытым текстом — то есть хранилище перестаёт быть хранилищем. Для всего, кроме проверки на стенде, нужен https.

Это внешняя зависимость на пути чтения конфигурации. Недоступное хранилище означает, что узел не прочитает ключи подписи и сертификат, — и обнаружится это при перезагрузке.

Главная ловушка — не заметить, что появилась зависимость. До подключения хранилища узел читал секреты из своих файлов и не зависел ни от чего. После — перезагрузка конфигурации требует, чтобы хранилище отвечало. Это ровно тот момент, когда обычно и перезагружают.
Что делает Хаб. Не пишет: секреты кладутся на узел файлами. Подключая хранилище в будущем, надо будет учесть эту зависимость в порядке применения конфигурации: сейчас Хаб кладёт файл и перезагружает, а с хранилищем между этими шагами появляется третья сторона.
Рекомендуемые значения

Значение — адрес со схемой:

Что Замечание
https://имя обычный случай; порт по умолчанию
https://имя:порт если хранилище слушает не на стандартном
http://… только стенд: токен и секреты пойдут открытым текстом

Проверять доступность до применения конфигурации, а не после.

Форма записи — из руководства (§ 3.3.23.1). Предупреждение про схему и про зависимость при перезагрузке — наши.
Пример в конфигурации
# хранилище на своём порту, обязательно по https
<vault>
    server-url https://myvault:4500    access-token akhdfasdhf786282684734kjsdhf
</vault>
Пример руководства. Схема https здесь не украшение: по этому соединению идут и токен, и сами секреты.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Ставят http ради простоты

наш опыт

Чем чреватоТокен и секреты идут по сети открытым текстом. Хранилище в такой схеме не защищает ничего, а только добавляет зависимость.
Как заметитьВ конфигурации http://.
Как правильноТолько https. Если сертификат хранилища самоподписанный, это отдельный вопрос — но не повод отказываться от шифрования.

Не учитывают зависимость при применении конфигурации

наш опыт

Чем чреватоУзел не прочитает секреты, пока хранилище недоступно. Применение конфигурации срывается, и причина не в самой конфигурации.
Как заметитьПерезагрузка не проходит, при том что файл не менялся.
Как правильноПроверять доступность хранилища перед применением — командой из справки, отдельным шагом.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
server-url <url>
Значения
http или https, имя или адрес сервера, при необходимости порт
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<vault>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования у строки нет: блок <vault> один на узел, и адрес в нём один. Двух хранилищ PowerMTA не поддерживает.
Как проверить на узле
Доступность хранилища проверяют до применения конфигурации:
curl -sI https://myvault:4500/v1/sys/health | head -1
Код 200 или 429 означает, что хранилище отвечает. Отсутствие ответа — что перезагрузка конфигурации не пройдёт: узел не сможет прочитать секреты.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация ключей · Безопасность узла
Соседние настройки блока <vault>:access-tokencache-ttlВсе 3 директив блока →