Airflow Configuration
Reading time: 4 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Configuration File
Apache Airflow는 모든 airflow 머신에서 **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를 발견할 때DAG
와airflow
문자열이 포함되지 않은 파일은 무시합니다.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'
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.