Airflow Configuration

Support HackTricks

Configuration File

Apache Airflowairflow 사용자의 홈에 **airflow.cfg**라는 config file을 생성합니다. 이 config file은 구성 정보를 포함하며 흥미롭고 민감한 정보가 포함될 수 있습니다.

이 파일에 접근하는 방법은 두 가지가 있습니다: airflow 머신을 손상시키거나 웹 콘솔에 접근하는 것입니다.

config file의 값사용되는 값이 아닐 수 있습니다, 환경 변수를 설정하여 덮어쓸 수 있습니다. 예: AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.

웹 서버의 config file에 접근할 수 있다면, config가 표시되는 동일한 페이지에서 실제 실행 구성을 확인할 수 있습니다. airflow 환경 내의 어떤 머신에 접근할 수 있다면, 환경을 확인하십시오.

config file을 읽을 때 확인할 만한 몇 가지 흥미로운 값:

[api]

  • access_control_allow_headers: 이는 CORS에 대한 허용된 헤더를 나타냅니다.

  • access_control_allow_methods: 이는 CORS에 대한 허용된 메서드를 나타냅니다.

  • access_control_allow_origins: 이는 CORS에 대한 허용된 출처를 나타냅니다.

  • auth_backend: 문서에 따르면 API에 접근할 수 있는 사람을 구성하기 위한 몇 가지 옵션이 있습니다:

  • airflow.api.auth.backend.deny_all: 기본적으로 아무도 API에 접근할 수 없습니다.

  • airflow.api.auth.backend.default: 모두가 인증 없이 접근할 수 있습니다.

  • airflow.api.auth.backend.kerberos_auth: kerberos 인증을 구성합니다.

  • airflow.api.auth.backend.basic_auth: 기본 인증을 위한 것입니다.

  • airflow.composer.api.backend.composer_auth: 작곡가 인증(GCP)을 사용합니다 (여기서 더보기).

  • composer_auth_user_registration_role: 이는 airflow 내에서 작곡가 사용자가 가질 역할을 나타냅니다 (Op가 기본값입니다).

  • 또한 자신만의 인증 방법을 파이썬으로 만들 수 있습니다.

  • google_key_path: GCP 서비스 계정 키의 경로입니다.

[atlas]

  • password: 아틀라스 비밀번호

  • username: 아틀라스 사용자 이름

[celery]

  • flower_basic_auth : 자격 증명 (user1:password1,user2:password2)

  • result_backend: 자격 증명이 포함될 수 있는 Postgres URL입니다.

  • ssl_cacert: cacert의 경로입니다.

  • ssl_cert: 인증서의 경로입니다.

  • ssl_key: 키의 경로입니다.

[core]

  • dag_discovery_safe_mode: 기본적으로 활성화되어 있습니다. DAG를 발견할 때 DAGairflow 문자열이 포함되지 않은 파일은 무시합니다.

  • fernet_key: 암호화된 변수를 저장하기 위한 키(대칭).

  • hide_sensitive_var_conn_fields: 기본적으로 활성화되어 있으며, 연결의 민감한 정보를 숨깁니다.

  • security: 사용할 보안 모듈(예: kerberos).

[dask]

  • tls_ca: ca의 경로입니다.

  • tls_cert: 인증서의 경로입니다.

  • tls_key: tls 키의 경로입니다.

[kerberos]

  • ccache: ccache 파일의 경로입니다.

  • forwardable: 기본적으로 활성화되어 있습니다.

[logging]

  • google_key_path: GCP JSON 자격 증명의 경로입니다.

[secrets]

  • backend: 활성화할 비밀 백엔드의 전체 클래스 이름입니다.

  • backend_kwargs: backend_kwargs 매개변수는 사전으로 로드되어 비밀 백엔드 클래스의 init에 전달됩니다.

[smtp]

  • smtp_password: SMTP 비밀번호입니다.

  • smtp_user: SMTP 사용자입니다.

[webserver]

  • cookie_samesite: 기본적으로 Lax이며, 따라서 이미 가능한 가장 약한 값입니다.

  • cookie_secure: 세션 쿠키에 보안 플래그를 설정합니다.

  • expose_config: 기본값은 False이며, true일 경우 config를 웹 콘솔에서 읽을 수 있습니다.

  • expose_stacktrace: 기본값은 True이며, 파이썬 추적을 표시합니다(공격자에게 유용할 수 있습니다).

  • secret_key: 이는 쿠키에 서명하기 위해 flask가 사용하는 입니다(이 키가 있으면 Airflow의 모든 사용자를 가장할 수 있습니다).

  • web_server_ssl_cert: SSL 인증서경로입니다.

  • web_server_ssl_key: SSL 경로입니다.

  • x_frame_enabled: 기본값은 True이며, 따라서 기본적으로 클릭재킹이 불가능합니다.

Web Authentication

기본적으로 웹 인증webserver_config.py 파일에 지정되어 있으며 다음과 같이 구성됩니다.

AUTH_TYPE = AUTH_DB

즉, 인증이 데이터베이스에 대해 확인됩니다. 그러나 다른 구성도 가능합니다.

AUTH_TYPE = AUTH_OAUTH

제3자 서비스에 인증을 맡기기 위해.

그러나 익명 사용자 접근을 허용하는 옵션도 있으며, 다음 매개변수를 원하는 역할로 설정할 수 있습니다:

AUTH_ROLE_PUBLIC = 'Admin'
HackTricks 지원하기

Last updated