Настройка безопасности

Если вы запускаете на сервере Grafana или в его локальной сети веб-сервисы, не относящиеся к Grafana, они могут оказаться уязвимы для эксплуатации через прокси источников данных Grafana или иными способами.

Чтобы предотвратить такую эксплуатацию, мы рекомендуем применить одну или несколько перечисленных ниже мер предосторожности.

Ограничение IP-адресов и имён хостов для URL источника данных

Вы можете настроить Grafana так, чтобы в качестве URL источников данных принимались и проксировались через прокси источников данных Grafana только определённые IP-адреса или имена хостов. Указания по использованию см. в разделе data_source_proxy_whitelist.

Безопасность запросов

Параметр конфигурации «Безопасность запросов» позволяет пользователям ограничивать запросы, исходящие от сервера Grafana. Он действует на запросы, которые создаются пользователями. Подробнее см. в разделе Безопасность запросов.

Note

Безопасность запросов доступна в Grafana Enterprise v7.4 и более поздних версиях.

Правила межсетевого экрана

Настройте межсетевой экран, чтобы ограничить сетевые запросы Grafana к важным внутренним веб-сервисам.

Существует множество инструментов для работы с межсетевыми экранами. Обратитесь к документации вашего конкретного средства защиты. Например, пользователи Linux могут использовать iptables.

Прокси-сервер

Вы можете потребовать, чтобы все сетевые запросы, выполняемые Grafana, проходили через прокси-сервер.

Варианты самостоятельно развёрнутых обратных прокси включают, помимо прочего:

Настройка CORS

Если вы хотите включить CORS для своего экземпляра Grafana, запустите Grafana за обратным прокси и настройте заголовки CORS в этом обратном прокси.

Подробнее см. в разделе Запуск Grafana за обратным прокси.

Note

Grafana не рекомендует использовать подстановочные значения (*) в качестве значений заголовков и советует вместо этого указывать URL.

Ограничение прав на запросы для роли «Наблюдатель»

Пользователи с ролью Viewer role могут вводить любой возможный запрос в любой из источников данных, доступных в организации, а не только те запросы, которые определены на дашбордах, на которые у пользователя есть права просмотра.

Например, в экземпляре Grafana с одним источником данных, одним дашбордом и одной панелью, где определён один запрос, можно предположить, что наблюдатель увидит только результат запроса, определённого на этой панели. В действительности же наблюдатель может отправить в источник данных любой запрос. С помощью инструмента командной строки наподобие curl (таких инструментов много) наблюдатель может выполнить собственный запрос к источнику данных и потенциально получить доступ к конфиденциальным данным.

Чтобы устранить эту уязвимость, вы можете ограничить доступ к запросам источников данных следующими способами:

  • Создайте несколько источников данных с некоторыми ограничениями, добавленными в конфигурацию источника данных, которые ограничивают доступ (например, имя базы данных или учётные данные). Затем используйте корпоративную функцию Права на источники данных, чтобы ограничить доступ пользователей к источнику данных в Grafana.
  • Создайте отдельную организацию Grafana и в ней создайте отдельный источник данных. Убедитесь, что у источника данных есть какая-либо настройка параметра/пользователя/учётных данных, ограничивающая доступ к части данных. Не у всех источников данных есть возможность ограничить доступ.

Последствия включения анонимного доступа к дашбордам

Когда вы включаете анонимный доступ в Grafana, любой посетитель или пользователь может пользоваться Grafana как наблюдатель без входа в систему. В этом разделе перечислены последствия включения анонимного доступа для безопасности.

  • Любой, у кого есть URL дашборда, доступного роли «Наблюдатель», сможет открыть этот дашборд.
  • Новые дашборды общедоступны, если только создатель дашборда не скрыл их от всех наблюдателей.
  • Любой может редактировать или удалять дашборды, которые предоставляют наблюдателям права на редактирование или администрирование.
  • Любой может выполнять вызовы view к API и получать список всех папок, дашбордов и источников данных.
  • Любой может выполнять произвольные запросы к любому источнику данных, настроенному в экземпляре Grafana.