Como resolver problemas da criação de ambientes

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Nesta página, você encontra informações para solucionar problemas que podem ser encontrados durante a criação de ambientes do Airflow Gerenciado.

Para informações sobre solução de problemas relacionadas à atualização e upgrade de ambientes, consulte Como resolver problemas de atualizações e upgrades do ambiente.

Quando os ambientes do Airflow gerenciado são criados, a maioria dos problemas acontece pelos seguintes motivos:

  • Problemas de permissão da conta de serviço.

  • Informações de firewall, DNS ou roteamento incorretos.

  • Problemas relacionados à rede. Por exemplo, configuração de VPC inválida, conflitos de endereço IP ou intervalos de IP de rede que sejam muito estreitos.

  • Problemas relacionados a cotas.

  • Políticas da organização incompatíveis.

Permissões insuficientes para criar um ambiente

Se o Airflow Gerenciado não criar um ambiente porque sua conta não tem permissões suficientes, as seguintes mensagens de erro serão exibidas:

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission

ou

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.

Solução: atribua papéis à sua conta e à conta de serviço do ambiente, conforme descrito em Controle de acesso.

  • No Airflow Gerenciado (Geração 2), verifique se a conta de serviço Agente de serviço do Cloud Composer (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) tem o papel Extensão do agente de serviço da API Cloud Composer v2 atribuído.

  • Verifique se o agente de serviço de APIs do Google (PROJECT_NUMBER@cloudservices.gserviceaccount.com) tem o papel de Editor atribuído.

  • Na configuração da VPC compartilhada, siga as instruções de configuração da VPC compartilhada.

A conta de serviço do ambiente não tem permissões suficientes

Ao criar um ambiente do Airflow Gerenciado, você especifica uma conta de serviço que executa os nós do cluster do GKE do ambiente. Se essa conta de serviço não tiver permissões suficientes para a operação solicitada, o Airflow gerenciado vai gerar o seguinte erro:

Errors in: [Web server]; Error messages:
  Creation of airflow web server version failed. This may be an intermittent
  issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}

Solução: atribua papéis à sua conta e à conta de serviço do ambiente, conforme descrito em Controle de acesso.

Avisos sobre papéis do IAM ausentes em contas de serviço

Quando a criação de um ambiente falha, o Airflow gerenciado gera a seguinte mensagem de aviso após um erro: The issue may be caused by missing IAM roles in the following Service Accounts ....

Essa mensagem de aviso destaca possíveis causas para o erro. O Airflow gerenciado verifica os papéis necessários nas contas de serviço do seu projeto e, se eles não estiverem presentes, gera essa mensagem de aviso.

Solução: verifique se as contas de serviço mencionadas na mensagem de aviso têm os papéis necessários. Para mais informações sobre papéis e permissões no Airflow Gerenciado, consulte Controle de acesso.

Em alguns casos, é possível ignorar esse aviso. O Airflow Gerenciado não verifica as permissões individuais atribuídas às funções. Por exemplo, se você usa papéis personalizados do IAM, é possível que a conta de serviço mencionada na mensagem de aviso já tenha todas as permissões necessárias. Nesse caso, ignore o aviso.

Políticas da organização incompatíveis

As políticas a seguir precisam ser configuradas corretamente para que os ambientes do Airflow Gerenciado possam ser criados com sucesso.

Política da organização Airflow gerenciado (Geração 3) Airflow gerenciado (Geração 2) Airflow gerenciado (geração 1 legada)
compute.disableSerialPortLogging É permitido qualquer valor Precisa ser desativado Desativado para versões anteriores à 1.13.0. qualquer valor
compute.requireOsLogin É permitido qualquer valor É permitido qualquer valor Precisa ser desativado
compute.vmCanIpForward É permitido qualquer valor É permitido qualquer valor É necessário permitir (obrigatório para clusters do GKE gerenciados pelo Airflow) quando o modo nativo da VPC (usando o IP do alias) não está configurado.
compute.vmExternalIpAccess É permitido qualquer valor Precisa ser permitido em ambientes de IP público Precisa ser permitido em ambientes de IP público
compute.restrictVpcPeering Pode ser aplicada Não pode ser aplicada Não pode ser aplicada
compute.disablePrivateServiceConnectCreationForConsumers É permitido qualquer valor Não é possível negar SERVICE_PRODUCERS para ambientes de IP público e privado. Não afeta os ambientes atuais, que podem operar quando essa política está ativada. Não é possível negar SERVICE_PRODUCERS para ambientes de IP particular. Não afeta os ambientes atuais, que podem operar quando essa política está ativada.
compute.restrictPrivateServiceConnectProducer Quando ativada, adicione a organização google.com à lista de permissões Quando ativada, adicione a organização google.com à lista de permissões É permitido qualquer valor

Políticas de limite de acesso principal incompatíveis

As políticas de limite de acesso de principal configuradas na sua organização podem ser configuradas de forma a bloquear algumas operações do seu ambiente ou impedir a criação de novos ambientes.

Se for esse o caso, talvez você veja a seguinte linha nas mensagens de erro:

Operations on resource are denied due to an IAM Principal Access Boundary Policy.

Os componentes do ambiente estão localizados em um locatário e um projeto do cliente. O projeto do locatário é gerenciado pelo Google e não pertence à organização em que o ambiente está localizado. A conta de serviço do seu ambiente precisa ter permissões para realizar operações no projeto de locatário.

Solução:

Restringir serviços usados na organização ou no projeto

Os administradores da organização ou do projeto podem restringir quais serviços do Google podem ser usados nos projetos deles com a restrição de política da organização gcp.restrictServiceUsage.

Ao usar essa política da organização, é importante permitir todos os serviços exigidos pelo Airflow Gerenciado.

A seguir