Data/Superset

Superset) 4.0.2 커스터마이징하기(2)_Logo,Role

MightyTedKim 2025. 1. 5. 23:57
728x90
반응형

 

1. 들어가기 전에


지난 포스팅에서는 superset 설치와 설정값을 어떻게 세팅하는지 이야기했어요.

 

Superset) 4.0.2 커스터마이징하기(1)_Flag,Theme,LandingPage

지난 포스팅에서는  superset 4.x 버전에 대해서 간단하게 알아봤어요. Superset) 너 왜이렇게 버전업이 빠르니? (7개월 만에 2.1에서 4.0)작년에 superset POC하고 올해 적용하기로 했어요예전에 2.1 버전

mightytedkim.tistory.com

 

이번에는 설정값 관련되서 좀 더 이야기해보려고 합니다. 

 

예상 독자는 아래와 같습니다.

1. Superset Logo 변경하고 싶으신 분

2. Superset Role 설정하고 싶으신 분


1. Superset Logo 변경

빠르게 로고를 변경해보죠 ㅎ


1-1. 설정값 추가

superset_config_docker.py 에 아래 처럼 값을 추가해줍니다.

(static 폴더 밑에 둬야지 web에서 읽을 수 있습니다)

print('Loaded superset_config_docker.py')
##LOGO
APP_NAME = 'TEST_DEMO'
APP_ICON = '/static/assets/images/custom.png'
APP_ICON_WIDTH = 200
LOGO_TARGET_PATH = '/'

 

1-2. volume mount

불행히도 docker-compose에서 설정값으로이미지를 복사하는 건 없어요

그래서 volume mount 해줘야 해요

x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}
x-superset-depends-on: &superset-depends-on
  - db
  - redis
x-superset-volumes:
  &superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
  - ./docker:/app/docker
  - superset_home:/app/superset_home
  - /home/hgkim/workspace/2_install/superset/custom.png:/app/superset/static/assets/images/custom.png

 

혹시나 읽히지 않는다면 권한을 변경해주세요

docker exec "$CONTAINER_NAME" chown -R superset:superset "$IMAGE_PATH"
docker exec "$CONTAINER_NAME" chmod -R 644 "$IMAGE_PATH"

1-3. 결과


2. Superset Role 설정

Role 관리는 사실 명확하게 명시된 것도 없고,

이런식으로 하면 좋겠다 정도의 가이드만 있어요

 

그래서 저는 어떻게 하고 있는지 간단한 예시로 전달드릴게요.


2-1. 설정값 추가

먼저 설정값을 켭니다. ` DASHBOARD_RBAC `

# https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md
FEATURE_FLAGS = {   "DASHBOARD_RBAC": True } 

 

이걸 켜야지, user 별로 특정 대시보드에 접근할 수 있어요

Dashboard 수정을 누르면 ROLE이라는 항목이 등장합니다.

 

Role 부분은 좀 복잡해서 최대한 간단하게 설명해볼게요.


2-2. custom role, user 만들기

[custom role]

* readonly 권한용 // 대시보드 별로 관리용

공식 문서에는 기존 제공되는
`Gamma` role을 사용하라고 하는데 

chart edit까지 되버려서, 최소한의 role을 만들었어요

 

실습에서 사용할 custom role의 Permission은 아래와 같습니다.

[can read on Chart, can read on Dashboard, 
can warm up cache on Chart, can explore json on Superset,
can warm up cache on Superset, menu access on Dashboards, 
can csv on Superset, can view chart as table on Dashboard]

 

[test user를 만들기]

* role은 일단 public으로


2-3. 테스트 하기 (희망편)

이제 작동하는 예시를 보여드릴게요

제 목표는 아래와 같습니다

1. video game 대시보드에 
2. `읽기` 권한만 가진 user를 생성하기


test 유저에 방금 만든 custom role을 모두 할당합니다.


* EDIT > ROLES > 'schema-examples-public-videogame' 선택

 


test 유저로 로그인

 

이제 잘 나오는 것을 확인 할 수 있습니다


2-4. 테스트 하기 (절망편)

위의 예시를 보면, 뭐 이리 불편하게 하지?

라는 생각을 하셨을 꺼에요.

그라파나 등 다른 툴들은 이렇지 않으니까요

 

이제 의도적으로 장애를 만들어볼게요.


[a. test user에서 custom readonly role을 제거하기]

* 대시보드의 `role`할당만 살려보죠

리다이렉트하다가 에러나서, Error Web으로도 안갑니다.


[b. readonly 기능만 살려보기]

다행히 화면은 보이지만 역시 대시보드는 없습니다.

 

뭔가 이상하죠?

 

저도 이상하다고 생각합니다.

대시보드 권한 관리의 자유도가 높아졌지만, 반대로 관리하기 어려워요,

 

 

 

4. 마무리

role 관련해서는 schema, dataset까지 관리하고

대시보드가 publish, draft인지에 따라서도 관리를 할 수 있어요

하지만 롤을 잘못 설정하면 다양한 버그로 우회 접근할 수 있는 문제가 있어서

최대한 제한하는것이 맞는 것 같습니다.

 

+ 참고

https://github.com/apache/superset/issues/21736

 

How can I change the logo? I am using docker compose · Issue #21736 · apache/superset

I would like you to help me to change the superset logo, it is my first time using containers and I don't know how to change the logo. I've been searching and they say that with the container id yo...

github.com

https://stackoverflow.com/questions/53994048/superset-individual-dashboard-permission

 

Superset individual dashboard permission

Is it possible to set permission on a specific dashboard? Like only 'user1' and 'user2' will view/see 'dashboard1' and others will not see 'dashboard1'.

stackoverflow.com

https://www.restack.io/docs/superset-knowledge-superset-gamma-role-overview

 

Superset Gamma Role Explained

An in-depth look at the Superset Gamma role, its permissions, and usage within the analytics platform.

www.restack.io

https://tedparkdev.tistory.com/10#google_vignette

 

Apache Superset(아파치 슈퍼셋) 권한

Superset에 기본적으로 정의되어 있는 Role은 다음과 같다. Role을 커스터마이징 할 수도 있지만 Superset에서는 기본 Role을 사용하는 것을 권장한다고 한다. Even though Admin users have the ability, we don't recomm

tedparkdev.tistory.com

 

728x90
반응형