Airflow Configuration
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apache Airflow gera um arquivo de configuração em todas as máquinas do airflow chamado airflow.cfg
na pasta inicial do usuário airflow. Este arquivo de configuração contém informações de configuração e pode conter informações interessantes e sensíveis.
Existem duas maneiras de acessar este arquivo: Comprometendo alguma máquina do airflow ou acessando o console web.
Observe que os valores dentro do arquivo de configuração podem não ser os utilizados, pois você pode sobrescrevê-los definindo variáveis de ambiente como AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Se você tiver acesso ao arquivo de configuração no servidor web, pode verificar a configuração real em execução na mesma página em que a configuração é exibida. Se você tiver acesso a alguma máquina dentro do ambiente do airflow, verifique o ambiente.
Alguns valores interessantes para verificar ao ler o arquivo de configuração:
access_control_allow_headers
: Isso indica os cabeçalhos permitidos para CORS
access_control_allow_methods
: Isso indica os métodos permitidos para CORS
access_control_allow_origins
: Isso indica as origens permitidas para CORS
auth_backend
: De acordo com a documentação algumas opções podem ser configuradas para definir quem pode acessar a API:
airflow.api.auth.backend.deny_all
: Por padrão, ninguém pode acessar a API
airflow.api.auth.backend.default
: Todos podem acessá-la sem autenticação
airflow.api.auth.backend.kerberos_auth
: Para configurar autenticação kerberos
airflow.api.auth.backend.basic_auth
: Para autenticação básica
airflow.composer.api.backend.composer_auth
: Usa autenticação de compositores (GCP) (de aqui).
composer_auth_user_registration_role
: Isso indica a função que o usuário compositor terá dentro do airflow (Op por padrão).
Você também pode criar seu próprio método de autenticação com python.
google_key_path
: Caminho para a chave da conta de serviço GCP
password
: Senha do Atlas
username
: Nome de usuário do Atlas
flower_basic_auth
: Credenciais (user1:password1,user2:password2)
result_backend
: URL do Postgres que pode conter credenciais.
ssl_cacert
: Caminho para o cacert
ssl_cert
: Caminho para o cert
ssl_key
: Caminho para a chave
dag_discovery_safe_mode
: Habilitado por padrão. Ao descobrir DAGs, ignore quaisquer arquivos que não contenham as strings DAG
e airflow
.
fernet_key
: Chave para armazenar variáveis criptografadas (simétrica)
hide_sensitive_var_conn_fields
: Habilitado por padrão, oculta informações sensíveis de conexões.
security
: Qual módulo de segurança usar (por exemplo, kerberos)
tls_ca
: Caminho para ca
tls_cert
: Caminho para o cert
tls_key
: Caminho para a chave tls
ccache
: Caminho para o arquivo ccache
forwardable
: Habilitado por padrão
google_key_path
: Caminho para as credenciais JSON do GCP.
backend
: Nome completo da classe do backend de segredos a ser habilitado
backend_kwargs
: O parâmetro backend_kwargs é carregado em um dicionário e passado para init da classe do backend de segredos.
smtp_password
: Senha SMTP
smtp_user
: Usuário SMTP
cookie_samesite
: Por padrão é Lax, então já é o valor mais fraco possível
cookie_secure
: Define a flag segura no cookie de sessão
expose_config
: Por padrão é Falso, se verdadeiro, a configuração pode ser lida do console web
expose_stacktrace
: Por padrão é Verdadeiro, mostrará tracebacks python (potencialmente útil para um atacante)
secret_key
: Esta é a chave usada pelo flask para assinar os cookies (se você tiver isso, pode impersonar qualquer usuário no Airflow)
web_server_ssl_cert
: Caminho para o certificado SSL
web_server_ssl_key
: Caminho para a Chave SSL
x_frame_enabled
: O padrão é Verdadeiro, então por padrão o clickjacking não é possível
Por padrão, a autenticação web é especificada no arquivo webserver_config.py
e é configurada como
O que significa que a autenticação é verificada contra o banco de dados. No entanto, outras configurações são possíveis, como
Para deixar a autenticação para serviços de terceiros.
No entanto, também há uma opção para permitir acesso a usuários anônimos, definindo o seguinte parâmetro para o papel desejado:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)