Plugin Frontend Sandbox로 플러그인 코드 격리

Plugin Frontend Sandbox로 플러그인 코드 격리 (Isolate plugin code with the Plugin Frontend Sandbox)

Plugin Frontend Sandbox는 플러그인 프론트엔드 코드를 메인 Grafana 애플리케이션에서 격리하는 보안 기능이에요. 활성화되면 플러그인이 별도의 JavaScript 컨텍스트에서 실행되어, 플러그인이 지정된 영역 밖의 Grafana UI를 수정하는 것을 막고 다른 플러플러그인 기능을 방해하지 못하며 핵심 Grafana 기능을 보호하고 전역 브라우저 객체·동작 수정을 차단해요.

출처: 문서

본문

Caution: Plugin Frontend Sandbox는 현재 공개 미리보기 상태예요. Grafana Labs는 제한적인 지원을 제공하며, 기능이 일반 공개되기 전에 파괴적 변경이 발생할 수 있어요.

샌드박스 안에서 실행되는 플러그인은 의도된 기능에서 눈에 띄는 변화 없이 정상적으로 동작해야 해요.

언제 사용하나요

사용자가 데이터 시각화나 조작을 위해 커스텀 JavaScript 코드를 작성할 수 있게 하는 플러그인에는 Frontend Sandbox 활성화를 강력히 권장해요 — 그런 코드는 Grafana 인스턴스에서 임의 JavaScript를 실행할 수 있기 때문이에요. 샌드박스는 이 코드가 접근하고 수정할 수 있는 것을 제한해 추가 보안 계층을 제공해요. 특히 유용한 플러그인 예시:

  • 사용자가 커스텀 JavaScript 코드를 작성할 수 있는 패널 플러그인
  • 신뢰할 수 없는 소스의 플러그인

호환성과 요구 사항

  • Frontend Sandbox는 Grafana >= 11.5에서 공개 미리보기로 제공돼요. 앱 플러그인, 패널 플러그인, 데이터 소스 플러그인을 포함한 모든 유형의 플러그인과 호환돼요.
  • Angular 기반 플러그인은 지원되지 않아요.
  • Grafana Labs가 개발하고 서명한 플러그인은 제외되며 샌드박스 처리할 수 없어요.

Frontend Sandbox 활성화

자체 호스팅 Grafana 설치에서는 security 섹션에서 enable_frontend_sandbox_for_plugins 구성 옵션으로 샌드박스할 플러그인 ID를 추가해요. Grafana Cloud 사용자는 플러그인 카탈로그 페이지의 토글 스위치로 각 플러그인의 샌드박스를 켜거나 끌 수 있어요. 기본적으로 모든 플러그인에서 샌드박스는 비활성화돼 있어요.

Note: Frontend Sandbox 활성화는 특정 플러그인의 성능에 영향을 줄 수 있어요. 플러그인을 완전히 신뢰하고 보안 영향을 이해할 때만 샌드박스를 비활성화하세요.

문제 해결

Frontend Sandbox가 활성화된 상태에서 플러그인이 제대로 동작하지 않는다면:

  1. 해당 플러그인에 대해 샌드박스를 일시적으로 비활성화해요.
  2. 샌드박스 없이 플러그인이 제대로 동작하는지 테스트해요.
  3. 플러그인이 샌드박스가 꺼진 상태에서만 동작한다면, 샌드박스 보호 없이 계속 사용하기 전에 플러그인 소스를 신뢰할 수 있는지 확인해요.
  4. 샌드박스 관련 문제를 플러그인 개발자에게 보고해요.

더 알아보기 (Learn more)