Настройка безопасности
Если вы запускаете на сервере Grafana или в его локальной сети веб-сервисы, не относящиеся к Grafana, они могут оказаться уязвимы для эксплуатации через прокси источников данных Grafana или иными способами.
Чтобы предотвратить такую эксплуатацию, мы рекомендуем применить одну или несколько перечисленных ниже мер предосторожности.
Ограничение IP-адресов и имён хостов для URL источника данных
Вы можете настроить Grafana так, чтобы в качестве URL источников данных принимались и проксировались через прокси источников данных Grafana только определённые IP-адреса или имена хостов. Указания по использованию см. в разделе data_source_proxy_whitelist.
Безопасность запросов
Параметр конфигурации «Безопасность запросов» позволяет пользователям ограничивать запросы, исходящие от сервера Grafana. Он действует на запросы, которые создаются пользователями. Подробнее см. в разделе Безопасность запросов.
Note
Безопасность запросов доступна в Grafana Enterprise v7.4 и более поздних версиях.
Правила межсетевого экрана
Настройте межсетевой экран, чтобы ограничить сетевые запросы Grafana к важным внутренним веб-сервисам.
Существует множество инструментов для работы с межсетевыми экранами. Обратитесь к документации вашего конкретного средства защиты. Например, пользователи Linux могут использовать iptables.
Прокси-сервер
Вы можете потребовать, чтобы все сетевые запросы, выполняемые Grafana, проходили через прокси-сервер.
Варианты самостоятельно развёрнутых обратных прокси включают, помимо прочего:
- Pomerium, у которого есть руководство по защите Grafana
- NGINX с их руководством по ограничению доступа с помощью HTTP basic authentication
- OAuth2 proxy
Настройка CORS
Если вы хотите включить CORS для своего экземпляра Grafana, запустите Grafana за обратным прокси и настройте заголовки CORS в этом обратном прокси.
Подробнее см. в разделе Запуск Grafana за обратным прокси.
Note
Grafana не рекомендует использовать подстановочные значения (
*) в качестве значений заголовков и советует вместо этого указывать URL.
Ограничение прав на запросы для роли «Наблюдатель»
Пользователи с ролью Viewer role могут вводить любой возможный запрос в любой из источников данных, доступных в организации, а не только те запросы, которые определены на дашбордах, на которые у пользователя есть права просмотра.
Например, в экземпляре Grafana с одним источником данных, одним дашбордом и одной панелью, где определён один запрос, можно предположить, что наблюдатель увидит только результат запроса, определённого на этой панели. В действительности же наблюдатель может отправить в источник данных любой запрос. С помощью инструмента командной строки наподобие curl (таких инструментов много) наблюдатель может выполнить собственный запрос к источнику данных и потенциально получить доступ к конфиденциальным данным.
Чтобы устранить эту уязвимость, вы можете ограничить доступ к запросам источников данных следующими способами:
- Создайте несколько источников данных с некоторыми ограничениями, добавленными в конфигурацию источника данных, которые ограничивают доступ (например, имя базы данных или учётные данные). Затем используйте корпоративную функцию Права на источники данных, чтобы ограничить доступ пользователей к источнику данных в Grafana.
- Создайте отдельную организацию Grafana и в ней создайте отдельный источник данных. Убедитесь, что у источника данных есть какая-либо настройка параметра/пользователя/учётных данных, ограничивающая доступ к части данных. Не у всех источников данных есть возможность ограничить доступ.
Последствия включения анонимного доступа к дашбордам
Когда вы включаете анонимный доступ в Grafana, любой посетитель или пользователь может пользоваться Grafana как наблюдатель без входа в систему. В этом разделе перечислены последствия включения анонимного доступа для безопасности.
- Любой, у кого есть URL дашборда, доступного роли «Наблюдатель», сможет открыть этот дашборд.
- Новые дашборды общедоступны, если только создатель дашборда не скрыл их от всех наблюдателей.
- Любой может редактировать или удалять дашборды, которые предоставляют наблюдателям права на редактирование или администрирование.
- Любой может выполнять вызовы
viewк API и получать список всех папок, дашбордов и источников данных. - Любой может выполнять произвольные запросы к любому источнику данных, настроенному в экземпляре Grafana.