access-token

<vault>

Токен, которым узел представляется хранилищу секретов
в конфигурации это строкаaccess-tokenвнутри блока <vault>
Один секрет вместо многих — но он всё-таки есть

Строка задаёт токен, которым узел авторизуется в хранилище. Токен создаётся вручную в самом Vault; PowerMTA его не запрашивает и не обновляет.

Нужен почти всему, что работает через хранилище: чтению ключей подписи, сертификата приёма и пароля к нему, проверке пароля подачи через LDAP.

И он лежит в конфигурации открытым текстом. В этом суть размена: вместо десятка секретов в файлах узла остаётся один — зато он даёт доступ ко всем остальным.

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

Значение — строка токена. Что предусмотреть вместе с ним:

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

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

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

Дают токену больше прав, чем нужно

наш опыт

Чем чреватоУзлу нужно чтение нескольких путей. Токен с широкими правами, утёкший из конфигурации или её бэкапа, отдаёт всё хранилище — в том числе то, что к почте отношения не имеет.
Как заметитьОбнаруживается при разборе доступа, а не в работе.
Как правильноВыдавать токен с политикой на конкретные пути и заводить отдельный токен на каждый узел.

Не следят за сроком действия токена

наш опыт

Чем чреватоИстёкший токен означает, что узел не может прочитать ключи и сертификат. Ломается это не в момент истечения, а при следующем чтении конфигурации — то есть в неподходящий момент.
Как заметитьПерезагрузка конфигурации перестаёт проходить без правок в ней.
Как правильноЗнать срок и продлевать заранее; проверять токен командой из справки перед каждым применением конфигурации.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
access-token <string>
Значения
строка токена, созданного на стороне Vault
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<vault>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования у строки нет: блок <vault> один на узел, и токен в нём один. Секреты, которые через него читаются, наследуются каждый по своим правилам — domain-key по блокам адресов отправки, smtp-server-tls-certificate на уровне узла.
Как проверить на узле
Проверяется снаружи — тем же токеном, что стоит в конфигурации:
curl -s -H 'X-Vault-Token: ТОКЕН' https://myvault:4500/v1/sys/health
Ответ со статусом хранилища означает, что токен действителен. Ошибка авторизации — узел не сможет прочитать ни ключи подписи, ни сертификат, и это выяснится при следующем чтении конфигурации.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация ключей · Безопасность узла
Соседние настройки блока <vault>:cache-ttlserver-urlВсе 3 директив блока →