Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
O Apache Airflow inclui uma interface do utilizador Web denominada IU do Airflow, que pode usar para gerir DAGs do Airflow, ver registos de execução de DAGs, monitorizar o Airflow e realizar ações administrativas.
Acerca do servidor Web do Airflow
Cada ambiente do Cloud Composer tem um servidor Web que executa a IU do Airflow. O servidor Web faz parte da arquitetura do ambiente do Cloud Composer.
Antes de começar
Tem de ter uma função que possa ver ambientes do Cloud Composer. Para mais informações, consulte o artigo Controlo de acesso.
Durante a criação do ambiente, o Cloud Composer configura o URL do servidor Web que executa a IU do Airflow. O URL não é personalizável.
O Cloud Composer 2 suporta a funcionalidade de controlo de acesso à IU do Airflow (controlo de acesso baseado em funções do Airflow) para a IU do Airflow.
Se a opção Controlos de API > Apps de terceiros não configuradas > Não permitir que os utilizadores acedam a apps de terceiros estiver ativada no Google Workspace e a app Apache Airflow no Cloud Composer não estiver explicitamente permitida, os utilizadores não podem aceder à IU do Airflow, a menos que permitam explicitamente a aplicação. Para permitir o acesso, siga os passos indicados no artigo Permita o acesso à IU do Airflow no Google Workspace.
Se as associações de acesso sensível ao contexto do Chrome Enterprise Premium forem usadas com níveis de acesso que dependem de atributos do dispositivo e a app Apache Airflow no Cloud Composer não for isenta, não é possível aceder à IU do Airflow devido a um ciclo de início de sessão. Para permitir o acesso, siga os passos indicados no artigo Permita o acesso à IU do Airflow em associações do Acesso sensível ao contexto.
Se as regras de entrada estiverem configuradas num perímetro dos VPC Service Controls que protege o projeto, e a regra de entrada que permite o acesso ao serviço Cloud Composer usar o tipo de identidade
ANY_SERVICE_ACCOUNT
ouANY_USER_ACCOUNT
, os utilizadores não podem aceder à IU do Airflow, acabando por entrar num ciclo de início de sessão. Para mais informações sobre como resolver este cenário, consulte o artigo Permita o acesso à IU do Airflow nas regras de entrada do VPC Service Controls.
Aceda à IU do Airflow
No Cloud Composer 2, o servidor Web do Airflow é executado como uma carga de trabalho no cluster do seu ambiente. O servidor Web é implementado no domínio composer.googleusercontent.com
e fornece acesso à IU do Airflow.
O Cloud Composer 2 fornece acesso à interface com base nas identidades dos utilizadores e nas associações de políticas de IAM definidas para os utilizadores. Em comparação com o Cloud Composer 1, o Cloud Composer 2 usa um mecanismo diferente que não depende do Identity-Aware Proxy.
Aceda à IU do Airflow a partir da Google Cloud consola
Para aceder à IU do Airflow a partir da Google Cloud consola:
Na Google Cloud consola, aceda à página Ambientes.
Na coluna Servidor Web do Airflow, siga o link do Airflow para o seu ambiente.
Inicie sessão com uma Conta Google que tenha as autorizações adequadas.
Obtenha o URL da IU do Airflow com a CLI Google Cloud
Pode aceder à IU do Airflow a partir de qualquer navegador de Internet. Para obter o URL da IU do Airflow, execute o seguinte comando na CLI Google Cloud:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
O comando da CLI gcloud mostra as propriedades de um ambiente do Cloud Composer, incluindo os URLs da IU do Airflow.
Os URLs são apresentados como airflowUri
e airflowByoidUri
:
- O endereço URL
airflowUri
é usado pelas Contas Google. - O endereço URL
airflowByoidUri
é usado por identidades externas se configurar a federação de identidade da força de trabalho no seu projeto.
config:
airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com
Reinicie o servidor Web
Ao depurar ou resolver problemas de ambientes do Cloud Composer, alguns problemas
podem ser resolvidos reiniciando o servidor Web do Airflow. Pode reiniciar o servidor Web
através da API restartWebServer
ou do comando restart-web-server
na CLI do Google Cloud:
gcloud composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
Configure o acesso à rede do servidor Web
Os parâmetros de acesso do servidor Web do Airflow não dependem da configuração de rede do seu ambiente. Em alternativa, configura o acesso ao servidor Web separadamente. Por exemplo, um ambiente de IP privado pode continuar a ter a IU do Airflow acessível a partir da Internet.
Não é possível configurar os intervalos de IP permitidos para serem endereços IP privados.
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
Na secção Configuração da rede, encontre o item Controlo de acesso ao servidor Web e clique em Editar.
Na caixa de diálogo Controlo de acesso à rede do servidor Web:
Para conceder acesso ao servidor Web do Airflow a partir de todos os endereços IP, selecione Permitir acesso a partir de todos os endereços IP.
Para restringir o acesso apenas a intervalos de IP específicos, selecione Permitir acesso apenas a partir de endereços IP específicos. No campo Intervalo de IP, especifique um intervalo de IP na notação CIDR. No campo Descrição, especifique uma descrição opcional para este intervalo. Se quiser especificar mais do que um intervalo, clique em Adicionar intervalo de IP.
Para proibir o acesso a todos os endereços IP, selecione Permitir acesso apenas a endereços IP específicos e clique em Eliminar item junto à entrada de intervalo vazia.
gcloud
Quando atualiza um ambiente, os seguintes argumentos controlam os parâmetros de acesso do servidor Web:
O
--web-server-allow-all
fornece acesso ao Airflow a partir de todos os endereços IP. Esta é a opção predefinida.O
--update-web-server-allow-ip
restringe o acesso apenas a intervalos de IP de origem específicos. Para especificar vários intervalos de IP, use este argumento várias vezes.--web-server-deny-all
proíbe o acesso para todos os endereços IP.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.WS_IP_RANGE
: o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTION
: a descrição do intervalo de IP.
Exemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
--update-web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"
API
Construa um pedido de API [
environments.patch
][api-patch].Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.webServerNetworkAccessControl
.No corpo do pedido, especifique como os registos de tarefas do Airflow têm de ser guardados:
Para conceder acesso ao Airflow a partir de todos os endereços IP, especifique um elemento
config
vazio (o elementowebServerNetworkAccessControl
não pode estar presente).Para restringir o acesso apenas a intervalos de IPs específicos, especifique um ou mais intervalos em
allowedIpRanges
.Para proibir o acesso a todos os endereços IP, especifique um elemento
webServerNetworkAccessControl
vazio. O elementowebServerNetworkAccessControl
tem de estar presente, mas não pode conter um elementoallowedIpRanges
.
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
Substitua o seguinte:
WS_IP_RANGE
: o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTION
: a descrição do intervalo de IP.
Exemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "example range"
},
{
"value": "192.0.4.0/24",
"description": "example range 2"
}
]
}
}
}
Terraform
No bloco allowed_ip_range
, em web_server_network_access_control
especifique os intervalos de IP que podem aceder ao servidor Web.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
}
}
Substitua o seguinte:
WS_IP_RANGE
: o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTION
: a descrição do intervalo de IP.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "example range"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "example range 2"
}
}
}