Audit devices: логирование обращений
Как Vault фиксирует каждое обращение, не раскрывая при этом сами секреты в логах.
Audit device (аудит-устройство) — компонент, записывающий в лог каждый запрос к Vault и каждый ответ; секретные значения при этом хешируются, а не пишутся в открытом виде.
Аудит — не опция, а основа доверия к Vault. Без него вы не ответите на главный вопрос инцидента: «кто, когда и какой секрет читал». Vault логирует всё — но делает это безопасно.
Включение аудита
# лог в файл
vault audit enable file file_path=/var/log/vault/audit.log
# можно включить несколько устройств сразу
vault audit enable -path=syslog-audit syslog
vault audit list
Что в логе
Каждая запись — это JSON с метаданными запроса и ответа: путь, операция, токен (по accessor), время, IP клиента. Секретные значения хешируются HMAC:
{
"type": "response",
"time": "2026-06-24T10:00:00Z",
"auth": { "accessor": "hmac-sha256:ab12...", "policies": ["orders-read"] },
"request": { "operation": "read", "path": "database/creds/readonly" },
"response": { "data": { "password": "hmac-sha256:9f3c..." } }
}
Пароль в логе — это HMAC, а не само значение. Зато по этому HMAC можно проверить, фигурировал ли конкретный секрет в запросе, не раскрывая его читателю лога.
Как работает под капотом
Аудит-устройства встроены в путь обработки запроса до и после выполнения. Важнейшее свойство: если включено хотя бы одно устройство и запись в него не удалась, Vault откажет в операции (fail-closed). Логика жёсткая: лучше не выдать секрет, чем выдать его незалогированным. Поэтому в проде ставят минимум два устройства разных типов (файл + syslog), чтобы отказ одного не блокировал Vault. Хеширование делается ключом, привязанным к устройству, что и позволяет потом сверять значения.
Зачем это критично
- Расследование инцидентов — точная картина обращений к секретам.
- Комплаенс — многие стандарты требуют журнал доступа к секретам.
- Атрибуция — accessor токена показывает, кто обращался.
- Проверка без раскрытия — HMAC позволяет искать секрет в логах, не светя его.
Частые ошибки
- Работать без аудита — при инциденте вы слепы.
- Единственное устройство — его отказ заблокирует Vault (fail-closed).
- Открытый доступ к audit-логу — там метаданные и HMAC, лог тоже надо защищать и ротировать.
- Ждать в логе открытых паролей — их там нет, только HMAC, это by design.
Итог
- Audit-устройства логируют каждый запрос/ответ; секреты в логах хешируются HMAC.
- При сбое единственного устройства Vault отказывает в операции (fail-closed) — ставьте минимум два.
- Аудит даёт расследование, атрибуцию и комплаенс без раскрытия значений в логах.