Basic Auth

Тема дорожной карты · Prometheus

Базовая аутентификация в Prometheus представляет собой механизм защиты HTTP-эндпоинтов, который позволяет ограничить доступ к метрикам и веб-интерфейсу только авторизованным пользователям. Эта функция особенно полезна для предотвращения несанкционированного доступа, что особенно важно для корпоративных сред. Начиная с версии Prometheus 2.24, встроенная поддержка базовой аутентификации доступна через файл конфигурации web.yml, который содержит хешированные пароли для каждого пользователя. Это позволяет использовать базовую аутентификацию для защиты Prometheus и экспортёров, таких как node_exporter.

Как это работает

Базовая аутентификация в Prometheus реализуется через файл конфигурации web.yml, где хранятся хешированные пароли пользователей. Для использования этой функции необходимо настроить флаг --web.config.file на указание этого файла. Внутри конфигурационного файла prometheus.yml также можно использовать блок basic_auth для предоставления учётных данных при опросе целей, требующих аутентификации. Это позволяет контролировать доступ к метрикам и веб-интерфейсу для каждого пользователя отдельно.

Когда применять

Базовая аутентификация рекомендуется использовать в production-среде, где необходимо обеспечить безопасность доступа к метрикам и веб-интерфейсу Prometheus. В частности, это важно для защиты внутренних инструментов, таких как node_exporter, которые могут содержать чувствительные данные. В корпоративных средах настоятельно рекомендуется использовать базовую аутентификацию вместе с TLS-шифрованием, чтобы предотвратить передачу учётных данных в открытом виде по сети. Это особенно важно для мониторинга кластеров Kubernetes, где используются сервисные аккаунты и токены для аутентификации.

Типичные ошибки

Одной из распространённых ошибок при использовании базовой аутентификации является экспозиция веб-интерфейса Prometheus публично без аутентификации. Это может привести к утечке информации, так как каждая метрика и каждый job могут быть доступны без авторизации. Другая распространённая ошибка — использование plain HTTP между Prometheus и экспортёрами, что позволяет злоумышленникам получить доступ к учётным данным и метрикам. Также важно периодически ротировать учётные данные для сервисных аккаунтов, особенно если они используются для мониторинга кластеров Kubernetes. Наконец, использование одного экземпляра Prometheus для нескольких тенантов может привести к отсутствию изоляции данных, что может быть критичным для корпоративных сред.

Связанные понятия

Полезные ресурсы