RBAC 트러블슈팅

RBAC 트러블슈팅 (Troubleshooting RBAC)

RBAC(역할 기반 접근 제어)는 Grafana Enterprise/Cloud의 권한 관리 기능이에요. 이 문서에서는 RBAC에 사용 가능한 로그와 가장 흔한 RBAC 문제를 다룹니다. 권한이 어긋나서 대시보드·폴더·데이터 소스 접근이 안 될 때 이 페이지를 참고하면 좋아요.

출처: Troubleshooting RBAC

본문

디버그 로깅 활성화 (Enable debug logging)

Grafana 설정 파일에서 RBAC에 대한 디버그 로그 메시지를 활성화할 수 있어요. 디버그 로그는 Grafana 서버 로그에 추가돼요.

[log]
filters = accesscontrol:debug accesscontrol.evaluator:debug dashboard.permissions:debug

감사 로깅 활성화 (Enable audit logging)

참고: Grafana Enterprise와 Grafana Cloud에서 사용 가능해요.

Grafana 설정 파일에서 감사(auditing)를 활성화할 수 있어요.

[auditing]
enabled = true

모든 권한·역할 업데이트와 역할 할당이 감사 로그에 추가돼요. 자세한 내용은 접근 제어 감사 로그를 참고하세요.

누락된 대시보드·폴더·데이터 소스 권한 (Missing dashboard, folder or data source permissions)

Grafana 인스턴스 버전이 업그레이드 → 다운그레이드 → 다시 업그레이드되는 경우, 대시보드·폴더 권한과 데이터 소스 권한이 동기화되지 않을 수 있어요. 이는 인스턴스가 RBAC를 사용하는 버전에서 레거시 접근 제어를 사용하는 버전으로 다운그레이드되고, 그 사이 대시보드·폴더·데이터 소스 권한이 업데이트될 때 발생해요. 이러한 권한 업데이트는 RBAC에 적용되지 않아서, 다음에 RBAC가 있는 버전으로 업그레이드할 때 권한이 어긋나게 돼요.

참고: 아래 단계를 실행하면 모든 대시보드·폴더·데이터 소스 권한이 레거시 접근 제어로 설정된 값으로 설정돼요. RBAC를 활성화한 상태에서 대시보드·폴더·데이터 소스 권한을 업데이트했다면, 이 업데이트들은 지워지게 돼요.

권한을 다시 동기화하려면:

  1. 데이터베이스를 백업해요.
  2. 다음 SQL 쿼리를 실행해요.
DELETE
FROM builtin_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE 'managed:%');
DELETE
FROM team_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE 'managed:%');
DELETE
FROM user_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE 'managed:%');
DELETE
FROM permission
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE 'managed:%');
DELETE
FROM role
WHERE name LIKE 'managed:%';
DELETE
FROM migration_log
WHERE migration_id IN ('teams permissions migration',
                       'dashboard permissions',
                       'dashboard permissions uid scopes',
                       'data source permissions',
                       'data source uid permissions',
                       'managed permissions migration',
                       'managed folder permissions alert actions repeated migration',
                       'managed permissions migration enterprise');
  1. Grafana 인스턴스를 재시작해요.

더 알아보기 (Learn more)