Airflow Configuration

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

구성 파일

Apache Airflow는 모든 airflow 머신에 **airflow.cfg**라는 구성 파일을 생성합니다. 이 구성 파일에는 구성 정보와 흥미로운 및 민감한 정보가 포함될 수 있습니다.

이 파일에 액세스하는 두 가지 방법이 있습니다: airflow 머신을 침해하거나 웹 콘솔에 액세스합니다.

구성 파일 내부의 값은 사용되는 값과 일치하지 않을 수 있습니다. AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'와 같은 환경 변수를 설정하여 이 값을 덮어쓸 수 있습니다.

웹 서버의 구성 파일에 액세스할 수 있다면, 구성이 표시되는 동일한 페이지에서 실제 실행 중인 구성을 확인할 수 있습니다. airflow 환경 내의 일부 머신에 액세스할 수 있다면, 환경을 확인하세요.

구성 파일을 읽을 때 확인해야 할 몇 가지 흥미로운 값:

[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).

  • 또한 python으로 자체 인증 방법을 작성할 수 있습니다.

  • google_key_path: GCP 서비스 계정 키의 경로

[atlas]

  • password: Atlas 비밀번호

  • username: Atlas 사용자 이름

[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로 설정하면 웹 콘솔에서 구성읽을 수 있습니다.

  • expose_stacktrace: 기본적으로 True이며, 파이썬 추적 정보를 표시합니다(공격자에게 유용할 수 있음).

  • secret_key: 이것은 flask가 쿠키에 서명하는 데 사용하는 입니다(이를 가지고 있다면 Airflow에서 모든 사용자를 가장할 수 있습니다).

  • web_server_ssl_cert: SSL 인증서경로

  • web_server_ssl_key: SSL 경로

  • x_frame_enabled: 기본값은 True이므로 기본적으로 클릭재킹이 불가능합니다.

웹 인증

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

AUTH_TYPE = AUTH_DB

이는 인증이 데이터베이스와 대조되는 것을 의미합니다. 그러나 다른 구성도 가능합니다.

AUTH_TYPE = AUTH_OAUTH

제3자 서비스에 인증을 맡기는 것.

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

AUTH_ROLE_PUBLIC = 'Admin'
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新