Simple auth manager
Simple auth manager
이 페이지는 Airflow 3의 기본 auth manager인 Simple auth manager를 다뤄요. 이름처럼 로직과 구현이 간단해요. 사용자 관리는 Airflow 설정([core] simple_auth_manager_users)으로 하고, 역할·권한은 구현의 일부로 고정되어 있어요. 멀티 팀 모드와 비밀번호 자동 생성, 선택적 기능(모든 사용자를 admin으로)을 설명해요.
출처: 문서
본문
Note
Simple auth manager는 개발·테스트를 위한 것이에요. production에서 사용한다면 다른 수단으로 접근이 통제되는지 확인하세요.
Simple auth manager는 Airflow 3에서 기본으로 제공되는 auth manager예요. 이름이 시사하듯, simple auth manager의 로직과 구현은 간단해요.
사용자 관리
사용자는 Airflow 설정으로 관리돼요. 예:
[core]
simple_auth_manager_users = "bob:admin,peter:viewer"
사용자 목록은 쉼표로 구분되고, 각 사용자는 콜론으로 구분된 username/role 쌍이에요. 각 사용자는 두 가지 정보가 필요해요:
- username. 사용자의 username
- role. 사용자와 연관된 역할. 이 역할에 대한 자세한 내용은 다음 섹션을 참고해요.
위 예제에는 두 명의 사용자가 정의돼 있어요:
- bob — 역할은 admin
- peter — 역할은 viewer
각 사용자의 비밀번호는 자동 생성되며 webserver 로그에 출력돼요. 생성되면 이 비밀번호는 core.simple_auth_manager_passwords_file에 구성된 파일에 저장돼요. 기본적으로 이 파일은 $AIRFLOW_HOME/simple_auth_manager_passwords.json.generated이며, 원한다면 파일에서 직접 읽고 업데이트할 수도 있어요.
Note
Breeze에서는
admin과viewer두 사용자가 미리 정의돼 있어요(비밀번호는 username과 동일).admin은 모든 권한을 가져요.viewer는 읽기 전용 권한을 가져요.
역할과 권한 관리
Simple auth manager에는 역할과 권한을 관리하는 옵션이 없어요. 그것들은 simple auth manager 구현의 일부로 정의되며 수정할 수 없어요. simple auth manager에 정의된 역할 목록은 다음과 같아요. 이 역할들은 사용자에게 연결할 수 있어요.
- viewer. Dags, assets, pools에 대한 읽기 전용 권한
- user. viewer 권한 + Dags에 대한 모든 권한(edit, create, delete)
- op. user 권한 + pools, assets, config, connections, variables에 대한 모든 권한
- admin. 모든 권한
멀티 팀
멀티 팀 모드가 활성화되면 사용자는 하나 이상의 팀과 연결될 수 있어요. 팀은 리소스 격리를 제공해서, 사용자가 자신의 팀에 속한 리소스(DAGs, connections, variables, pools)에만 접근할 수 있게 해요.
멀티 팀 모드를 활성화하려면:
[core]
multi_team = True
활성화한 후 콜론으로 구분된 세 번째 파라미터를 추가해 사용자에게 팀을 할당할 수 있어요. 여러 팀은 파이프(|) 문자로 구분돼요:
[core]
multi_team = True
simple_auth_manager_users = "bob:admin:team1|team2,peter:viewer:team1,alice:op:team2"
이 예제에서:
- bob은 admin으로 team1과 team2 자원 모두에 접근
- peter는 viewer로 team1 자원에만 접근
- alice는 op로 team2 자원에만 접근
Note
사용자가 팀과 연결되면 자신의 팀 중 하나에 명시적으로 할당된 리소스(DAGs, connections, variables, pools)에만 접근할 수 있어요. 팀 할당이 없는 리소스(글로벌 리소스)는 팀 제한이 있는 사용자를 포함해 모든 사람이 접근할 수 있어요.
Note
Admin 역할은 사용자에게 모든 팀의 모든 리소스에 대한 접근을 부여해요. admin 사용자를 팀에 연결할 수는 있지만 효과는 없어요.
선택적 기능
인증 비활성화하고 모두를 admin으로 허용
이 옵션은 인증을 비활성화하고 모두를 admin으로 허용해요. 결과적으로 Airflow UI에 접근하는 누구나 모든 권한을 가진 admin으로 자동 로그인돼요.
설정으로 이 기능을 활성화할 수 있어요. 예:
[core]
simple_auth_manager_all_admins = "True"