폴더 접근 제어
폴더 접근 제어 (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):
- 왼쪽 내비게이션에서 Dashboards 를 클릭합니다.
- 검사하려는 폴더로 이동합니다.
- 폴더 이름을 클릭해 열거나, 폴더 옆 ⋮ 메뉴를 클릭합니다.
- Manage permissions 를 선택합니다.
- 권한 대화상자가 이 폴더에 접근 권한이 있는 모든 사용자·팀·역할을 표시합니다.
권한 추가 (Add a permission):
- 폴더의 Manage permissions 대화상자를 엽니다.
- Add a permission 을 클릭합니다.
- 접근을 부여할 대상을 선택합니다: User(특정 사용자 계정), Team(팀의 모든 멤버), Service Account(API·자동화 접근용 서비스 계정), Role(특정 조직 역할을 가진 사용자 - Viewer, Editor, Admin).
- 권한 레벨(View, Edit, Admin)을 선택합니다.
- 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를 참고하세요.