폴더 접근 제어

폴더 접근 제어 (Folder access control)

폴더는 Grafana에서 리소스를 구성하고 접근을 제어하는 기본 방식이에요. 폴더에 권한을 할당하면 대시보드, 알림 규칙, SLO 등 해당 폴더 내 모든 리소스에 그 권한이 적용됩니다. 이 페이지는 폴더 권한이 어떻게 작동하고, 팀·사용자 접근을 효율적으로 관리하는 방법을 설명합니다.

출처: 문서

본문

폴더(Folders) 는 Grafana에서 리소스를 구성하고 접근을 제어하는 기본 방식입니다. 폴더에 권한을 할당하면 그 권한이 대시보드, 알림 규칙, SLO 등을 포함한 해당 폴더 내 모든 리소스에 적용됩니다.

시작하기 전에 (Before you begin)

  • 폴더 권한을 관리하려면 폴더에 Admin 권한이 필요해요.
  • 폴더를 만들려면 Folder Creator 역할이나 적절한 조직 권한이 필요합니다.
  • 폴더 권한은 모든 Grafana 에디션(OSS, Enterprise, Cloud)에서 사용할 수 있어요.

주의 - 폴더 제한사항: 폴더는 4단계 깊이까지 중첩할 수 있어요. 폴더 이름은 밑줄(_)이나 백분율(%) 문자를 포함할 수 없습니다.

새 폴더의 기본 권한 (Default permissions for new folders)

폴더가 생성되는 방식이 초기 권한을 결정합니다:

  • UI에서 만든 폴더: Admin 역할에 Admin 권한, Editor 역할에 Edit 권한, Viewer 역할에 View 권한이 자동 부여됩니다.
  • 코드로(as-code) 만든 폴더(Terraform, API, 프로비저닝): 구성에 명시적으로 정의된 권한만 가지며, Admin 역할에 Admin 권한이 기본 부여됩니다.

폴더 권한이 작동하는 방식 (How folder permissions work)

폴더 권한은 간단한 원칙을 따릅니다: 사용자의 리소스에 대한 유효 접근은 폴더 권한 레벨에 의해 결정됩니다.

사용자·팀에게 폴더 권한을 부여하면:

  • 그 권한이 폴더 자체에 적용됩니다.
  • 그 권한이 모든 하위 폴더로 계단식 전파(cascade) 됩니다.
  • 그 권한이 해당 폴더의 모든 리소스(대시보드, 알림 규칙 등)에 적용됩니다.

권한 레벨 (Permission levels)

폴더는 세 가지 권한 레벨을 지원하며, 각 레벨은 아래 레벨의 모든 기능을 포함합니다.

권한 폴더 기능 리소스 기능
View 폴더 보기 및 내용 탐색 대시보드 보기, 알림 규칙 읽기, 침묵 읽기, 주석 읽기, 라이브러리 패널 읽기
Edit 하위 폴더 생성, 폴더 속성 수정, 폴더 삭제 대시보드 생성·편집, 알림 규칙 생성·쓰기, 침묵 생성·쓰기, 주석 생성·쓰기, 라이브러리 패널 생성·관리
Admin 폴더 권한 관리 모든 Edit 기능 + 대시보드 권한 관리

상세 액션 분류 (Detailed action breakdown)

View 권한이 부여하는 것:

  • folders:read - 내비게이션에서 폴더 보기
  • dashboards:read - 폴더의 대시보드 보기
  • alert.rules:read - 폴더의 알림 규칙 보기
  • alert.silences:read - 알림 침묵 보기
  • annotations:read - 주석 보기
  • library.panels:read - 라이브러리 패널 보기

Edit 권한(View에 추가로)이 부여하는 것:

  • folders:write - 폴더 이름·속성 수정, folders:delete - 폴더 삭제, folders:create - 하위 폴더 생성
  • dashboards:create - 새 대시보드 생성, dashboards:write - 기존 대시보드 편집, dashboards:delete - 대시보드 삭제
  • alert.rules:create - 새 알림 규칙 생성, alert.rules:write - 알림 규칙 편집, alert.rules:delete - 알림 규칙 삭제
  • alert.silences:create - 침묵 생성, alert.silences:write - 침묵 편집
  • annotations:create - 주석 생성, annotations:write - 주석 편집, annotations:delete - 주석 삭제
  • library.panels:create - 라이브러리 패널 생성, library.panels:write - 편집, library.panels:delete - 삭제

Admin 권한(Edit에 추가로)이 부여하는 것:

  • folders.permissions:read - 폴더 권한 보기, folders.permissions:write - 폴더 권한 수정
  • dashboards.permissions:read - 대시보드 권한 보기, dashboards.permissions:write - 대시보드 권한 수정

권한 상속 (Permission inheritance)

권한은 부모 폴더에서 자식 폴더로 계단식 전파됩니다. 부모 폴더에서 Edit 권한이 있는 사용자는 모든 하위 폴더에서도 자동으로 Edit 권한을 가져요.

Production/                    # 여기서 사용자는 Edit 권한
├── Team A Dashboards/         # 사용자가 Edit 권한 상속
│   └── Service Metrics/       # 사용자가 Edit 권한 상속
└── Team B Dashboards/         # 사용자가 Edit 권한 상속

참고: 부모 폴더에서 가진 권한보다 하위 폴더에서 더 낮은 권한을 부여할 수 없어요. 권한 상속은 항상 아래 방향으로 흐릅니다.

폴더 권한을 사용하는 리소스 (Resources that use folder permissions)

리소스 폴더 권한 적용 방식
대시보드(Dashboards) View/Edit/Admin이 폴더 권한으로 직접 제어됨
하위 폴더(Subfolders) 부모 폴더 권한 상속, 추가 권한을 더할 수 있음
알림 규칙(Alert rules) View/Edit이 폴더 권한으로 제어됨
알림 침묵(Alert silences) View/Create/Edit이 폴더 권한으로 제어됨
라이브러리 패널(Library panels) View/Create/Edit/Delete가 폴더 권한으로 제어됨
SLOs 폴더 권한 + SLO 역할이 유효 접근 결정 (Plugin permissions)
주석(Annotations) 대시보드에 저장됨; 대시보드의 부모 폴더에서 권한 상속

플러그인 권한 (Plugin permissions)

일부 Grafana Cloud 플러그인은 이중 레이어 권한 모델을 사용하며, 폴더 권한과 플러그인 특정 역할 모두가 유효 접근을 결정합니다:

유효 플러그인 접근 = min(폴더 권한, 플러그인 역할)

예를 들어 SLO에서:

  • 폴더 Edit 권한 + SLO Writer 역할 사용자는 해당 폴더에서 SLO를 만들고 편집할 수 있어요.
  • 폴더 View 권한 + SLO Writer 역할 사용자는 SLO를 볼 수만 있습니다(폴더로 제한).
  • 폴더 Edit 권한 + SLO Reader 역할 사용자는 SLO를 볼 수만 있어요(플러그인 역할로 제한).

자세한 내용은 SLO access control 문서를 참고하세요.

폴더 권한 관리 (Manage folder permissions)

폴더는 Grafana의 Dashboards 섹션을 통해 접근합니다. 폴더의 컨텍스트 메뉴나 폴더 뷰 안에서 권한을 관리할 수 있어요.

현재 권한 보기 (View current permissions):

  1. 왼쪽 내비게이션에서 Dashboards 를 클릭합니다.
  2. 검사하려는 폴더로 이동합니다.
  3. 폴더 이름을 클릭해 열거나, 폴더 옆 메뉴를 클릭합니다.
  4. Manage permissions 를 선택합니다.
  5. 권한 대화상자가 이 폴더에 접근 권한이 있는 모든 사용자·팀·역할을 표시합니다.

권한 추가 (Add a permission):

  1. 폴더의 Manage permissions 대화상자를 엽니다.
  2. Add a permission 을 클릭합니다.
  3. 접근을 부여할 대상을 선택합니다: User(특정 사용자 계정), Team(팀의 모든 멤버), Service Account(API·자동화 접근용 서비스 계정), Role(특정 조직 역할을 가진 사용자 - Viewer, Editor, Admin).
  4. 권한 레벨(View, Edit, Admin)을 선택합니다.
  5. Save 를 클릭합니다.

권한 변경 (Change a permission): Manage permissions 대화상자에서 목록의 사용자·팀·역할을 찾아 권한 드롭다운으로 새 레벨을 선택합니다. 변경은 자동 저장됩니다.

권한 제거 (Remove a permission): Manage permissions 대화상자에서 목록의 사용자·팀·역할을 찾아 × 버튼을 클릭해 접근을 제거하고 제거를 확인합니다.

경고: 권한 제거는 폴더와 그 모든 내용에 대한 접근을 제거합니다. 사용자·팀은 해당 폴더의 대시보드, 알림 규칙, 기타 리소스를 더 이상 볼 수 없어요.

폴더 구조를 설계해 권한 관리 (Design your folder structure to manage permissions)

잘 설계된 폴더 구조는 권한 관리를 단순하게 만듭니다. 권장 패턴은 각 팀에 최상위 폴더를 만들고, 그 아래에 콘텐츠를 구성하기 위한 하위 폴더를 두는 것입니다:

SRE Team/                      # SRE 팀은 Admin
├── Production Monitoring/     # Admin 상속
├── On-Call Dashboards/        # Admin 상속
└── Runbooks/                  # Admin 상속

Platform Team/                 # Platform 팀은 Admin
├── Infrastructure/            # Admin 상속
└── Cost Tracking/             # Admin 상속

Shared/                        # 모두 View, 특정 팀은 Edit
├── Company KPIs/              # Marketing 팀은 Edit
└── Executive Dashboards/      # 리더십은 View

이 패턴이 제공하는 것:

  • 팀 소유권(Team ownership): 각 팀이 자기 폴더와 내용을 관리
  • 명확한 경계(Clear boundaries): 리소스가 책임별로 구성됨
  • 협업(Collaboration): 공유 폴더가 교차 팀 가시성 제공

처럼 조직 패턴에 대한 자세한 지침(Terraform·SCIM 프로비저닝 자동화 포함)은 Configure multi-team access를 참고하세요.

더 알아보기 (Learn more)