단일 Grafana 인스턴스에서 다중 팀 접근 관리

단일 Grafana 인스턴스에서 다중 팀 접근 관리 (Manage multi-team access in a single Grafana instance)

조직에 Grafana를 사용하는 여러 팀이 있다면, 단일 Grafana Enterprise 배포 또는 단일 Grafana Cloud 스택으로 역할(role)과 폴더를 사용해 팀 간 접근을 관리할 수 있어요. 이 방식은 복잡성을 줄이고, 아이덴티티·접근 관리를 단순화하며, 팀 간 협업을 촉진합니다.

출처: Manage multi-team access in a single Grafana instance

본문

이점 (Benefits)

단일 Grafana 인스턴스로 접근을 관리하면 다음을 할 수 있어요.

  • 통합된 SSO를 구현해 명확한 권한을 확립해요.
  • 다중 스택 복잡성을 피해 설정·유지보수 작업을 줄여요.
  • 플러그인 구성과 관리를 중앙화해요.
  • 팀이 올바른 대시보드와 데이터에 접근해 서로의 작업을 침범하거나 덮어쓰지 않도록 보장해요.
  • 팀 간 협업을 활성화해요. 팀은 사일로로 고립되지 않고 서로의 작업을 발견하고 협업할 수 있어요.
  • 리소스 관리를 최적화해요. "Everyone" 폴더 같은 공유 공간을 사용하면 스택 간에 복제하지 않고도 모든 그룹이 혜택을 볼 수 있는 임원 대시보드나 크로스팀 메트릭을 게시할 수 있어요.

예시: 세 팀, 하나의 스택

다음 세 팀 구성을 고려해 보세요.

  • Team A: 제품 기능을 만들며 자신의 대시보드와 데이터 소스에 대한 자율성이 필요해요.
  • Team B: 데이터 엔지니어링을 담당하며 자신의 대시보드에 대한 자율성이 필요해요.
  • Team C: 관측성 팀이며 Grafana 스택의 관리자예요.

다음 제안 단계를 따라 Grafana 인스턴스에서 데이터 접근을 구조화·구성·권한 설정해 보세요.

  1. 시작하기 전에: 팀 생성 및 사용자 접근 구성
  2. 접근 요구사항에 맞는 폴더 구조 설계
  3. 각 팀의 요구사항에 따른 데이터 접근 구성
  4. Terraform과 SSO로 접근 관리 확장

시작하기 전에:

참고: 하나의 스택을 쓸지 여러 스택을 쓸지에 대한 지침은 Stack architecture guidance를 참고하세요.

팀 생성 및 사용자 접근 구성

Grafana 인스턴스를 배포한 뒤:

  1. 이 문서의 예시를 따르려면 Grafana 팀 3개를 만들고 Grafana 인스턴스에 추가해요.
  2. 조직의 RBAC 전략을 결정해요. RBAC는 기본 Grafana 역할을 확장하고, 더 세분화된 접근 권한을 제공하며, 사용자·보고서 같은 Grafana 리소스에 대한 사용자 접근 부여·수정·철회를 단순화해요.
  3. 각 사용자를 관련 팀에 할당해요. 기본적으로 새 사용자에게는 Viewer 역할이 부여돼요.
  4. Team C에 Admin 역할을 할당해 인스턴스의 모든 리소스를 관리하게 해요.

접근 요구사항에 맞는 폴더 구조 설계

사용자가 어디로 가야 하는지, 무엇에 접근할 수 있는지, 무엇을 관리할 수 있는지 빨리 이해하게 도와주는 폴더 구성을 설계하려면:

  1. 모든 팀이 관리할 수 있는 공유 항목을 위한 "Everyone" 폴더를 만들고, 팀에 그 폴더에 대한 Admin 접근을 부여해요.
  2. 각 팀에 대해 관리할 폴더를 만들고 fixed:teams:read fixed 역할을 부여해요. 이렇게 하면 팀 폴더의 항목을 다른 팀과 공유해 협업과 상호 학습을 장려할 수 있어요.
  3. Team C를 위해 Admins만 접근할 수 있는 민감한 콘텐츠를 위한 "Admins" 폴더를 만들어요.
  4. 선택적으로 각 팀 구성원을 위한 개인 폴더를 만들어 준비되면 초안 콘텐츠를 팀 폴더로 옮기기 전에 작업할 수 있게 해요.

팀 요구사항에 따른 데이터 접근 구성

다음은 팀이 데이터와 상호작용하는 방식에 집중해 추가 접근 요구를 결정해요.

공유 기본 데이터 접근 (Shared baseline data access):

  • datasources:explorer fixed 역할을 모든 팀에 부여해 Drilldown apps로 데이터 소스를 쉽게 탐색하게 해요.
  • 그러나 공유 리소스의 데이터를 보호해야 할 수도 있어요. 예를 들어 모든 팀이 공유 데이터 소스로 메트릭을 전달하지만 모든 사람이 모든 데이터를 볼 필요는 없을 수 있어요. 이 경우 팀별 라벨 기반 접근 제어 (LBAC)에 따라 각 팀에 관련 데이터에 대한 쿼리 접근을 부여해요. 이렇게 하면 중앙 관측성 파이프라인을 유지하면서도 데이터 분리를 보존할 수 있어요.

자율적 팀 데이터 관리 (Autonomous team data management):

  • 팀 중 하나(예: Team A)가 제품 특화 사용 사례를 위해 자신의 데이터 소스를 만들고 관리해야 한다면, datasources:creator fixed 역할을 부여해 독립적으로 데이터 소스를 만들고 관리하게 해요.

인스턴스 수준의 리소스 (Resources at an instance level):

  • 서비스 계정, 알림 연락 지점, Fleet Management 수집기, 기타 기능 리소스 같은 일부 Grafana 리소스는 팀에 연결되지 않고 스택 수준에서 관리돼요. 이런 유형의 리소스에는 fixed 역할을 신중히 할당해요. 예를 들어 Frontend Observability에서 일하는 사용자는 서비스를 만들고 관리할 수 있도록 writer fixed 역할이 필요해요.

Terraform과 SSO로 접근 관리 확장

모델이 잘 동작하는지 확인한 뒤에는 그것을 코드화할 수 있어요.

  • SCIM을 통해 IdP(Identity Provider)로 새 사용자를 Grafana 인스턴스에 추가할 수 있어요. 역할 동기화를 사용해 IdP의 매핑된 속성에 따라 올바른 기본 역할(Viewer, Editor, Admin)을 자동으로 할당해요.
  • Terraform으로 팀의 폴더, fixed 역할, 공유 데이터 소스 LBAC 규칙을 프로비저닝할 수도 있어요. 예를 들어 새 팀(Team D)을 추가해야 한다면 새 팀을 Grafana에 추가하고 Terraform 스크립트를 실행하기만 하면 자동으로 Grafana 사용을 시작하도록 설정돼요.

기타 자료 (Other resources)

  • Least privilege custom role explainer 블로그는 간단하고 안전하게, 사용자가 필요한 접근만 가지도록 역할을 설계하는 방법을 다뤄요.
  • LBAC for metrics data sources demo은 공유 파이프라인의 혜택을 누리면서도 각 팀이 자신의 데이터를 명확히 보도록 하는 방법을 보여 줘요.
  • Introducing SCIM 포스트는 Grafana를 IdP에 연결하는 방법을 다뤄 조직이 성장함에 따라 새 사용자 온보딩과 권한 동기화를 쉽게 해 줘요.

더 알아보기 (Learn more)