웹 인터페이스에서 Airflow 역할 기반 액세스 제어 사용

Cloud Composer 1 | Cloud Composer 2

Cloud Composer의 Airflow UI에 대한 액세스는 Identity and Access Management를 통해 제어됩니다. 사용자는 먼저 IAP(Cloud Identity-Aware Proxy)를 인증하고 웹 UI에 액세스하기 전에 적절한 IAM 권한을 가지고 있어야 합니다.

하지만 사용자가 Airflow 웹 UI에 액세스하면 IAM은 Airflow UI에 더 세분화된 권한 제어를 제공하지 않습니다. 이 기능을 사용하면 Airflow 웹 UI에 세분화된 Airflow 기반 역할 기반 액세스 제어(RBAC)를 사용 설정할 수 있습니다.

RBAC UI는 고유한 자체 사용자, 역할, 권한 모델을 가진 Airflow의 기능으로 IAM과는 다릅니다.

RBAC UI 사용 설정

Cloud Composer 2에서는 Airflow RBAC UI가 항상 사용 설정됩니다.

RBAC UI 사용

RBAC UI에서 보안 메뉴의 링크를 사용하여 액세스 제어 설정을 구성할 수 있습니다. RBAC 모델, 사용 가능한 권한, 기본 역할에 대한 자세한 내용은 Airflow RBAC UI 문서를 참조하세요.

Airflow는 사용자 역할을 모든 커스텀 역할의 템플릿으로 취급합니다. 즉, Airflow가 all_dags의 권한을 제외하고 사용자 역할에서 모든 커스텀 역할로 권한을 계속 복사합니다.

Airflow RBAC는 자체 사용자 목록을 유지합니다. 즉, 관리자 역할(또는 이에 상응하는 역할)이 있는 사용자는 Airflow UI의 이 인스턴스를 열고 Airflow RBAC에 등록된 사용자 목록을 볼 수 있습니다.

RBAC UI에 사용자 등록

새로운 사용자는 지정된 Cloud Composer 환경과 연결된 Airflow RBAC UI를 처음 열 때 자동으로 등록됩니다.

등록 시 사용자에게 [webserver]rbac_user_registration_role Airflow 구성 옵션에 지정된 역할이 부여됩니다. 이 구성 옵션을 다른 값으로 재정의하여 새로 등록된 사용자의 역할을 제어할 수 있습니다.

지정되지 않은 경우 기본 등록 역할은 Airflow 2가 있는 환경에서 Op입니다.

Airflow RBAC UI의 기본 역할 구성을 만들려면 다음 단계를 따르는 것이 좋습니다.

Airflow 2

  1. 환경 관리자는 새로 생성된 환경의 Airflow RBAC UI로 이동합니다.

  2. 관리자 계정에 Admin 역할을 부여합니다. Airflow 2가 있는 환경에서 새 계정의 기본 역할은 Op입니다. Admin 역할을 할당하려면 gcloud로 다음 Airflow CLI 명령어를 실행합니다.

      gcloud beta composer environments run ENVIRONMENT_NAME \
        --location LOCATION \
        users add-role -- -e USER_EMAIL -r Admin
    

    다음과 같이 바꿉니다.

    • ENVIRONMENT_NAME: 환경 이름입니다.
    • LOCATION: 환경이 위치한 Compute Engine 리전입니다.
    • USER_EMAIL: 사용자 계정의 이메일입니다.
  3. 관리자는 이제 다른 사용자에게 Admin 역할을 부여하는 등 신규 사용자에 대한 액세스 제어를 구성할 수 있습니다.

Airflow 1

Cloud Composer 2에서는 Airflow 1을 사용할 수 없습니다.

사용자 삭제

RBAC에서 사용자를 삭제해도 해당 사용자의 액세스 권한은 취소되지 않습니다. 사용자가 다음에 Airflow UI에 방문하면 자동으로 등록되기 때문입니다. 전체 Airflow UI에 대한 액세스 권한을 취소하려면 프로젝트에 대한 IAM의 액세스 정책에서 composer.environments.get 권한을 삭제합니다. RBAC UI에서 사용자 역할을 공개로 변경하여 사용자의 등록을 유지하지만 Airflow UI에 대한 모든 권한을 삭제할 수도 있습니다.

DAG 수준 권한 구성

커스텀 역할에 대한 DAG 수준 권한을 구성하여 사용자 그룹에 표시할 DAG를 지정할 수 있습니다.

Airflow RBAC UI에서 DAG 분리를 구성하려면 다음 단계를 따르세요.

  1. 관리자가 DAG 그룹화용 빈 역할을 만듭니다.
  2. 관리자가 사용자에게 적절한 역할을 할당합니다.
  3. 관리자 또는 사용자가 역할에 DAG를 할당합니다.
  4. 해당 사용자가 속한 그룹에 권한이 주어진 사용자만 UI의 DAG를 볼 수 있습니다.

DAG 속성을 통해 또는 RBAC UI에서 역할에 DAG를 할당할 수 있습니다.

DAG 속성에서 역할에 DAG 할당

DAG 개발자는 업로드하는 DAG에 DAG를 할당할 DAG 그룹 역할을 지정하여 access_control DAG 매개변수를 설정할 수 있습니다.

dag = DAG(
  access_control={
    'DagGroup': {'can_dag_edit', 'can_dag_read'},
  },
  ...
  )

그런 다음 관리자, DAG 개발자 또는 자동화된 프로세스가 sync_perm Airflow 명령어를 실행하여 새로운 액세스 제어 설정을 적용해야 합니다.

RBAC UI에서 역할에 DAG 할당

관리자는 Airflow UI에서 적합한 역할에 원하는 DAG 수준 권한을 할당할 수도 있습니다.

다음 단계