Grafana Alerting RBAC 구성
Grafana Alerting RBAC 구성 (Configure RBAC)
RBAC(Role-based access control)는 Grafana Enterprise와 Grafana Cloud에서 사용자가 Grafana 리소스를 보고 수정할 수 있도록 접근 권한을 부여·변경·철회하는 표준화된 방법을 제공해요. 이 문서는 Grafana Alerting의 역할 유형, 기본 역할별 권한, 리소스 유형별 세부 권한 액션을 설명합니다.
출처: 문서
본문
RBAC(Role-based access control) 는 Grafana Enterprise와 Grafana Cloud에서 사용자가 Grafana 리소스를 보고 수정할 수 있도록 접근 권한을 부여·변경·철회하는 표준화된 방법을 제공합니다. 사용자는 Grafana에 로그인할 수 있는 개인이며, 각 사용자는 권한을 포함하는 역할을 가집니다. 각 권한은 하나 이상의 액션과 스코프를 포함합니다.
참고: 여러 레거시 알림 권한 액션이 더 이상 사용되지 않으며(deprecated) 이제 Editor 또는 Viewer 역할에 부여되지 않습니다. 이 액션들에 의존하는 custom roles나 자동화를 사용한다면 Deprecated permissions을 참고해 권장 대체 항목을 확인하세요.
역할 유형 (Role types)
| 역할 | 설명 |
|---|---|
| Basic roles | Admin, Editor, Viewer, No basic role. 사용자에게 할당되며 기본 접근 레벨 제공 |
| Fixed roles | 특정 사용 사례를 위한 사전 정의된 권한 그룹. 기본 역할은 특정 fixed roles를 자동 포함 |
| Custom roles | 세분화된 접근 제어를 위해 특정 권한을 결합하는 사용자 정의 역할 |
기본 역할 권한 (Basic role permissions)
| 기능 | Admin | Editor | Viewer |
|---|---|---|---|
| 알림 규칙 보기 | ✓ | ✓ | ✓ |
| 알림 규칙 생성·편집·삭제 | ✓ | ✓ | |
| 침묵 보기 | ✓ | ✓ | ✓ |
| 침묵 생성·편집·만료 | ✓ | ✓ | |
| 연락처 포인트·템플릿 보기 | ✓ | ✓ | ✓ |
| 연락처 포인트 생성·편집·삭제 | ✓ | ✓ | |
| 알림 정책 보기 | ✓ | ✓ | ✓ |
| 정책 생성·편집·삭제 | ✓ | ✓ | |
| mute timing 보기 | ✓ | ✓ | ✓ |
| timing interval 생성·편집·삭제 | ✓ | ✓ | |
| 알림 강화(alert enrichments) 보기 | ✓ | ✓ | ✓ |
| 강화 생성·편집·삭제 | ✓ | ✓ | |
| 프로비저닝 API 접근 | ✓ | ✓ | |
| 복호화된 시크릿으로 내보내기 | ✓ |
참고: 알림 규칙에 대한 접근은 규칙이 포함된 폴더 읽기 권한과 규칙에 사용된 데이터 소스 쿼리 권한도 필요합니다.
권한 (Permissions)
Grafana Alerting은 리소스 유형별로 구성된 다음 권한을 가집니다.
알림 규칙 (Alert rules):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.rules:create |
folders:*, folders:uid:* |
폴더와 하위 폴더에 Grafana 알림 규칙 생성. 폴더를 포함하는 스코프의 folders:read와 사용자가 쿼리할 수 있는 데이터 소스 스코프의 datasources:query와 함께 결합 |
alert.rules:read |
folders:*, folders:uid:* |
폴더·하위 폴더의 Grafana 알림 규칙 읽기. 폴더를 포함하는 스코프의 folders:read와 결합 |
alert.rules:write |
folders:*, folders:uid:* |
폴더·하위 폴더의 Grafana 알림 규칙 업데이트. 폴더 포함 스코프의 folders:read와 결합. 쿼리 수정 허용 시 사용자가 쿼리할 데이터 소스 스코프에 datasources:query 추가 |
alert.rules:delete |
folders:*, folders:uid:* |
폴더·하위 폴더의 Grafana 알림 규칙 삭제. 폴더 포함 스코프의 folders:read와 결합 |
외부 알림 규칙 (External alert rules):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.rules.external:read |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스(Prometheus, Mimir, Loki)의 알림 규칙 읽기 |
alert.rules.external:write |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스(Mimir, Loki)의 알림 규칙 생성·업데이트·삭제 |
알림 인스턴스·침묵 (Alert instances and silences):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.instances:read |
n/a | 현재 조직의 알림·침묵 읽기 |
alert.instances:create |
n/a | 현재 조직에 침묵 생성 |
alert.instances:write |
n/a | 현재 조직의 침묵 업데이트·만료 |
alert.silences:read |
folders:*, folders:uid:* |
폴더·하위 폴더의 모든 일반 침묵과 규칙별 침묵 읽기 |
alert.silences:create |
folders:*, folders:uid:* |
폴더·하위 폴더에 규칙별 침묵 생성 |
alert.silences:write |
folders:*, folders:uid:* |
폴더·하위 폴더의 규칙별 침묵 업데이트·만료 |
외부 알림 인스턴스 (External alert instances):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.instances.external:read |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스의 알림·침묵 읽기 |
alert.instances.external:write |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스의 알림·침묵 관리 |
연락처 포인트 (Contact points):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.notifications.receivers:list |
n/a | 현재 조직의 연락처 포인트 목록 |
alert.notifications.receivers:read |
receivers:*, receivers:uid:* |
연락처 포인트 읽기 |
alert.notifications.receivers.secrets:read |
receivers:*, receivers:uid:* |
복호화된 시크릿으로 연락처 포인트 내보내기 |
alert.notifications.receivers:create |
n/a | 새 연락처 포인트 생성. 생성자는 생성한 연락처 포인트에 전체 접근 자동 부여 |
alert.notifications.receivers:write |
receivers:*, receivers:uid:* |
기존 연락처 포인트 업데이트 |
alert.notifications.receivers:delete |
receivers:*, receivers:uid:* |
기존 연락처 포인트 업데이트·삭제 |
alert.notifications.receivers.test:create |
receivers:*, receivers:uid:*, receivers:uid:- |
연락처 포인트 테스트·구성 검증. 새 통합 테스트 권한은 receivers:uid:- 스코프 사용 |
receivers.permissions:read |
receivers:*, receivers:uid:* |
연락처 포인트 권한 읽기 |
receivers.permissions:write |
receivers:*, receivers:uid:* |
연락처 포인트 권한 관리 |
시간 간격 (Time intervals):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.notifications.time-intervals:read |
n/a | mute time interval 읽기 |
alert.notifications.time-intervals:write |
n/a | 새 mute time interval 생성 또는 기존 업데이트 |
alert.notifications.time-intervals:delete |
n/a | 기존 time interval 삭제 |
템플릿 (Templates):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.notifications.templates:read |
n/a | 템플릿 읽기 |
alert.notifications.templates:write |
n/a | 새 템플릿 생성 또는 기존 업데이트 |
alert.notifications.templates:delete |
n/a | 기존 템플릿 삭제 |
alert.notifications.templates.test:write |
n/a | 커스텀 페이로드로 템플릿 테스트(미리보기·페이로드 편집기 기능) |
외부 알림 (External notifications):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.notifications.external:read |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스의 템플릿·연락처 포인트·알림 정책·mute timing 읽기 |
alert.notifications.external:write |
datasources:*, datasources:uid:* |
알림을 지원하는 데이터 소스의 템플릿·연락처 포인트·알림 정책·mute timing 관리 |
프로비저닝 (Provisioning):
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.provisioning:read |
n/a | 프로비저닝 API로 모든 Grafana 알림 규칙·알림 정책 등 읽기. 폴더·데이터 소스 권한 불필요 |
alert.provisioning.secrets:read |
n/a | alert.provisioning:read와 동일 + 복호화된 시크릿으로 리소스 내보내기 |
alert.provisioning:write |
n/a | 프로비저닝 API로 모든 Grafana 알림 규칙·알림 정책 등 업데이트. 폴더·데이터 소스 권한 불필요 |
alert.rules.provisioning:read |
n/a | 프로비저닝 API로 Grafana 알림 규칙 읽기. alert.provisioning:read보다 구체적 |
alert.rules.provisioning:write |
n/a | 프로비저닝 API로 Grafana 알림 규칙 생성·업데이트·삭제. alert.provisioning:write보다 구체적 |
alert.notifications.provisioning:read |
n/a | 프로비저닝 API로 알림 리소스(연락처 포인트·알림 정책·템플릿·시간 간격) 읽기. alert.provisioning:read보다 구체적 |
alert.notifications.provisioning:write |
n/a | 프로비저닝 API로 알림 리소스 생성·업데이트·삭제. alert.provisioning:write보다 구체적 |
alert.provisioning.provenance:write |
n/a | 알림 리소스의 프로비저닝 상태 설정. 단독으로 사용 불가. 리소스 접근 권한 필요 |
알림 강화 (Alert enrichments): Grafana Cloud에서 관리.
| 액션 | 적용 스코프 | 설명 |
|---|---|---|
alert.enrichments:read |
n/a | 현재 조직의 알림 강화 구성 읽기 |
alert.enrichments:write |
n/a | 현재 조직의 알림 강화 구성 생성·업데이트·삭제 |
이 권한들은 개별 알림 규칙의 Alert enrichment 탭에 구성된 규칙별 강화에 적용됩니다. Alerting > Settings 에서 전역 강화를 관리하려면 Admin 기본 역할이 필요하며, alert.enrichments 권한이나 Enrichments fixed roles로는 부여되지 않습니다.
더 이상 사용되지 않는 권한 (Deprecated permissions)
다음 권한 액션은 더 이상 사용되지 않으며(deprecated) 하위 호환성을 위해 유지됩니다. 조직 Admins 에게만 부여되며, Editor·Viewer 기본 역할에는 부여되지 않아요. custom roles·자동화에는 아래 권장 대체를 사용하세요.
일반 알림(일반, deprecated): 광범위한 액션이 연락처 포인트·템플릿·시간 간격·알림 정책용 세분화된 리소스별 액션으로 대체됨.
| 액션 | 적용 스코프 | 대체 |
|---|---|---|
alert.notifications:read |
n/a | alert.notifications.receivers:read, alert.notifications.templates:read, alert.notifications.time-intervals:read, notifications.alerting.grafana.app/routingtrees:get 사용 |
alert.notifications:write |
n/a | alert.notifications.receivers:write, alert.notifications.templates:write, alert.notifications.time-intervals:write, notifications.alerting.grafana.app/routingtrees:update 사용 |
알림 정책(deprecated):
| 액션 | 적용 스코프 | 대체 |
|---|---|---|
alert.notifications.routes:read |
n/a | notifications.alerting.grafana.app/routingtrees:get + 스코프 notifications.alerting.grafana.app/routingtrees:* 사용 |
alert.notifications.routes:write |
n/a | notifications.alerting.grafana.app/routingtrees:update·delete + 적절한 리소스 스코프 사용 |
연락처 포인트 테스트(deprecated):
| 액션 | 적용 스코프 | 대체 |
|---|---|---|
alert.notifications.receivers:test |
n/a | alert.notifications.receivers.test:create + 스코프 receivers:uid:- (새 통합) 또는 receivers:* (기존) 사용 |