본문 바로가기
Dashboards/Superset

Superset에서 Viewer 권한관리

by 홍띠 2024. 10. 13.

대시보드는 사내 다수의 사용자가 접근해서 사용하다보니 사용자별, 그룹별 권한관리가 필수적이다. 이번에 대시보드를 다른 팀에 제공하기 위해서 대시보드 접근 권한관리를 알아본 내용을 정리했다.


슈퍼셋에서는 Viewer 사용자 권한 세부제어를 위해서 기본제공하는 Gamma 권한을 기본으로 사용하고 여기에 필요 권한을 추가해서 사용하는 것을 권장한다. Gamma권한은 슈퍼셋에 기본적으로 설정되어 있는 권한으로 이 권한 자체를 수정하는것이 아니라, Gamma를 기본 권한으로 두고 필요한 권한을 따로 추가해서 사용하도록 안내한다. 
여기서 Gamma Role은 일반적으로 Veiw를 위주로한 권한이 제공되며 추가로 차트/대시보드 생성의 역할이 부여된다. 다만 Gamma role에서 작성권한은 다른 사람이 만든 대시보드/차트를 편집하는 권한은 제외된다.
 
Gamma role을 직접 수정하지 말아야 하는 이유는 슈퍼셋에서 버전 업그레이드에 따라 Gamma Role과 같은 기본제공 Role에 대해서는 권한을 관리해주기 때문이다.
아래는 관련된 설명이 있는 슈퍼셋 공식페이지 내용의 일부이다.
https://superset.apache.org/docs/security/#restricting-access-to-a-subset-of-data-sources

We recommend giving a user the Gamma role plus any other roles that would add access to specific data sources. We recommend that you create individual roles for each access profile. For example, the users on the Finance team might have access to a set of databases and data sources; these permissions can be consolidated in a single role. Users with this profile then need to be assigned the Gamma role as a foundation to the models and views they can access, and that Finance role that is a collection of permissions to data objects.

 


 
일반적으로는 위에서 설명한 Gamma Role에 데이터소스에 대해서 권한을 세부적으로 제어해서 설정하면 된다.
이 방법은 매우 기본적으 UI 메뉴에서 쉽게 사용할 수 있도록 되어 있어서 간단하게만 설명한다.

  • 접근을 허용해줄 데이터 소스를 포함하도록 권한을 추가해서 Role을 만들고 이를 사용자/그룹에게 추가해준다.
  • all_datasource_access 권한 없이는 사용자들은 그들에게 부여된 데이터 소스로 만들어진 차트와 대시보드에 대해서만 접근이 가능하다.

 
내 경우에는 데이터소스별 권한 관리 외에도 대시보드 수준에서도 권한을 따로 관리하고 싶어서 좀 더 알아봤다.

대시보드 수준 권한 제어

아래 설명은 helm chart로 슈퍼셋을 설치해서 운영하는 경우에 대한 설명이다.

  • Superset Helm chart에서 values.yaml 수정 후 반영
configOverrides: 
	feature_flags: |
	  FEATURE_FLAGS = {
      "DASHBOARD_RBAC": True
	  }
  • 위 내용을 수정해서 배포하면, 아래와 같이 대시보드 properties 설정화면에서 Role 항목이 추가 된것을 볼 수 있다.
  • 원래 화면

 

  • Role이 추가된 화면
  • 이렇게 Role항목이 추가되었다면, 해당 대시보드를 접근하도록 하고 싶은 Role을 선택하면 된다.

 
참고:
https://www.restack.io/docs/superset-knowledge-superset-dashboard-rbac
https://www.restack.io/docs/superset-knowledge-apache-superset-user-management
 
 

'Dashboards > Superset' 카테고리의 다른 글

Superset에서 쿼리에 Jinja 템플릿 사용하기  (0) 2024.10.20