Изоляция кода плагинов с помощью Plugin Frontend Sandbox
Caution
Plugin Frontend Sandbox сейчас находится в стадии публичного предпросмотра. Grafana Labs оказывает ограниченную поддержку, и до перевода возможности в общую доступность возможны ломающие изменения.
Plugin Frontend Sandbox — это функция безопасности, изолирующая код фронтенда плагинов от основного приложения Grafana. Когда она включена, плагины выполняются в отдельном контексте JavaScript, что даёт ряд преимуществ с точки зрения безопасности:
- Плагины не могут изменять части интерфейса Grafana за пределами отведённых им областей
- Плагины не могут мешать работе других плагинов
- Основные функции Grafana защищены от изменения плагинами
- Плагины не могут изменять глобальные объекты и поведение браузера
Плагины, работающие внутри Frontend Sandbox, должны продолжать работать нормально, без заметных изменений в их предполагаемой функциональности.
Когда использовать Plugin Frontend Sandbox
Мы настоятельно рекомендуем включать Frontend Sandbox для плагинов, которые позволяют пользователям писать собственный код JavaScript для визуализации или обработки данных, поскольку они потенциально могут выполнять произвольный код JavaScript в вашем экземпляре Grafana. Песочница обеспечивает дополнительный уровень безопасности, ограничивая то, к чему этот код может получать доступ и что может изменять.
Вот примеры плагинов, для которых песочница особенно полезна:
- Плагины-панели, позволяющие пользователям писать собственный код JavaScript
- Плагины из ненадёжных источников
Совместимость и требования
Применяется следующее:
- Frontend Sandbox доступна в публичном предпросмотре в Grafana >=11.5. Она совместима со всеми типами плагинов, включая плагины-приложения, плагины-панели и плагины-источники данных.
- Плагины на основе Angular не поддерживаются.
- Плагины, разработанные и подписанные Grafana Labs, исключены и не могут быть помещены в песочницу.
Включение Frontend Sandbox
Для самостоятельно размещённых установок Grafana добавьте идентификаторы плагинов, которые нужно поместить в песочницу, в раздел security с помощью параметра конфигурации enable_frontend_sandbox_for_plugins.
Пользователи Grafana Cloud могут просто использовать переключатель на странице каталога плагинов, чтобы включить или отключить песочницу для каждого плагина. По умолчанию песочница отключена для всех плагинов.
Note
Включение Frontend Sandbox может повлиять на производительность некоторых плагинов. Отключайте песочницу только в том случае, если вы полностью доверяете плагину и понимаете последствия для безопасности.
Устранение неполадок
Если плагин не работает корректно при включённой Frontend Sandbox:
- Временно отключите песочницу для этого конкретного плагина
- Проверьте, работает ли плагин корректно без песочницы
- Если плагин работает только с отключённой песочницей, убедитесь, что вы доверяете источнику плагина, прежде чем продолжать использовать его без защиты песочницы
- Сообщите о любых проблемах, связанных с песочницей, разработчику плагина