Airflow Configuration
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apache Airflow는 airflow 사용자의 홈에 **airflow.cfg
**라는 config file을 생성합니다. 이 config file은 구성 정보를 포함하며 흥미롭고 민감한 정보가 포함될 수 있습니다.
이 파일에 접근하는 방법은 두 가지가 있습니다: airflow 머신을 손상시키거나 웹 콘솔에 접근하는 것입니다.
config file의 값은 사용되는 값이 아닐 수 있습니다, 환경 변수를 설정하여 덮어쓸 수 있습니다. 예: AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
웹 서버의 config file에 접근할 수 있다면, config가 표시되는 동일한 페이지에서 실제 실행 구성을 확인할 수 있습니다. airflow 환경 내의 어떤 머신에 접근할 수 있다면, 환경을 확인하십시오.
config file을 읽을 때 확인할 흥미로운 값들:
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
: composers 인증(GCP)을 사용합니다 ( 여기서 ).
composer_auth_user_registration_role
: 이는 airflow 내에서 composer 사용자가 가질 역할을 나타냅니다 (Op가 기본값입니다).
또한 자신만의 인증 방법을 python으로 만들 수 있습니다.
google_key_path
: GCP 서비스 계정 키의 경로입니다.
password
: Atlas 비밀번호
username
: Atlas 사용자 이름
flower_basic_auth
: 자격 증명 (user1:password1,user2:password2)
result_backend
: 자격 증명이 포함될 수 있는 Postgres URL.
ssl_cacert
: cacert의 경로
ssl_cert
: 인증서의 경로
ssl_key
: 키의 경로
dag_discovery_safe_mode
: 기본적으로 활성화되어 있습니다. DAG를 발견할 때 DAG
와 airflow
문자열이 포함되지 않은 파일은 무시합니다.
fernet_key
: 암호화된 변수를 저장하기 위한 키(대칭)
hide_sensitive_var_conn_fields
: 기본적으로 활성화되어 있으며, 연결의 민감한 정보를 숨깁니다.
security
: 사용할 보안 모듈(예: kerberos)
tls_ca
: ca의 경로
tls_cert
: 인증서의 경로
tls_key
: tls 키의 경로
ccache
: ccache 파일의 경로
forwardable
: 기본적으로 활성화되어 있습니다.
google_key_path
: GCP JSON 자격 증명의 경로입니다.
backend
: 활성화할 비밀 백엔드의 전체 클래스 이름
backend_kwargs
: backend_kwargs 매개변수는 사전으로 로드되어 비밀 백엔드 클래스의 init에 전달됩니다.
smtp_password
: SMTP 비밀번호
smtp_user
: SMTP 사용자
cookie_samesite
: 기본적으로 Lax이며, 따라서 이미 가능한 가장 약한 값입니다.
cookie_secure
: 세션 쿠키에 보안 플래그를 설정합니다.
expose_config
: 기본값은 False이며, true인 경우 config를 웹 콘솔에서 읽을 수 있습니다.
expose_stacktrace
: 기본값은 True이며, python 추적을 표시합니다 (공격자에게 유용할 수 있습니다).
secret_key
: 이는 쿠키에 서명하기 위해 flask에서 사용하는 키입니다 (이 키가 있으면 Airflow에서 어떤 사용자도 가장할 수 있습니다).
web_server_ssl_cert
: SSL 인증서의 경로입니다.
web_server_ssl_key
: SSL 키의 경로입니다.
x_frame_enabled
: 기본값은 True이며, 따라서 기본적으로 클릭재킹이 불가능합니다.
기본적으로 웹 인증은 webserver_config.py
파일에 지정되어 있으며 다음과 같이 구성됩니다.
즉, 인증이 데이터베이스에 대해 확인됩니다. 그러나 다른 구성도 가능합니다.
타사 서비스에 인증을 맡기기 위해.
그러나 익명 사용자 접근을 허용하는 옵션도 있으며, 다음 매개변수를 원하는 역할로 설정할 수 있습니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)