Configuração do Airflow
Reading time: 5 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Arquivo de Configuração
Apache Airflow gera um arquivo de configuração em todas as máquinas do airflow chamado airflow.cfg
na pasta home 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.
Note 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:
[api]
access_control_allow_headers
: Isso indica os cabeçalhos permitidos para CORSaccess_control_allow_methods
: Isso indica os métodos permitidos para CORSaccess_control_allow_origins
: Isso indica as origens permitidas para CORSauth_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 APIairflow.api.auth.backend.default
: Todos podem acessá-la sem autenticaçãoairflow.api.auth.backend.kerberos_auth
: Para configurar autenticação kerberosairflow.api.auth.backend.basic_auth
: Para autenticação básicaairflow.composer.api.backend.composer_auth
: Usa autenticação de compositores (GCP) (de aqui).composer_auth_user_registration_role
: Isso indica o papel 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
[atlas]
password
: Senha do Atlasusername
: Nome de usuário do Atlas
[celery]
flower_basic_auth
: Credenciais (user1:password1,user2:password2)result_backend
: URL do Postgres que pode conter credenciais.ssl_cacert
: Caminho para o cacertssl_cert
: Caminho para o certssl_key
: Caminho para a chave
[core]
dag_discovery_safe_mode
: Habilitado por padrão. Ao descobrir DAGs, ignore quaisquer arquivos que não contenham as stringsDAG
eairflow
.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)
[dask]
tls_ca
: Caminho para catls_cert
: Caminho para o certtls_key
: Caminho para a chave tls
[kerberos]
ccache
: Caminho para o arquivo ccacheforwardable
: Habilitado por padrão
[logging]
google_key_path
: Caminho para as credenciais JSON do GCP.
[secrets]
backend
: Nome completo da classe do backend de segredos a ser habilitadobackend_kwargs
: O parâmetro backend_kwargs é carregado em um dicionário e passado para init da classe do backend de segredos.
[smtp]
smtp_password
: Senha SMTPsmtp_user
: Usuário SMTP
[webserver]
cookie_samesite
: Por padrão é Lax, então já é o valor mais fraco possívelcookie_secure
: Define a flag segura no cookie de sessãoexpose_config
: Por padrão é False, se verdadeiro, a configuração pode ser lida do console webexpose_stacktrace
: Por padrão é True, mostrará tracebacks do python (potencialmente útil para um atacante)secret_key
: Esta é a chave usada pelo flask para assinar os cookies (se você tiver isso, pode se passar por qualquer usuário no Airflow)web_server_ssl_cert
: Caminho para o certificado SSLweb_server_ssl_key
: Caminho para a Chave SSLx_frame_enabled
: O padrão é True, então por padrão o clickjacking não é possível
Autenticação Web
Por padrão, a autenticação web é especificada no arquivo webserver_config.py
e é configurada como
AUTH_TYPE = AUTH_DB
O que significa que a autenticação é verificada contra o banco de dados. No entanto, outras configurações são possíveis, como
AUTH_TYPE = AUTH_OAUTH
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:
AUTH_ROLE_PUBLIC = 'Admin'
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.