Mudar o tipo de rede do ambiente (IP privado ou público)

Airflow gerenciado (terceira geração) | Airflow gerenciado (segunda geração) | Airflow gerenciado (primeira geração legada)

Esta página explica a diferença entre os tipos de rede de ambiente de IP particular e IP público no Airflow gerenciado (terceira geração) e fornece instruções para mudar o tipo de rede do seu ambiente.

Se você quiser desativar ou ativar o acesso à Internet apenas ao instalar pacotes PyPI, consulte Configurar o acesso à Internet ao instalar pacotes PyPI.

Se você quiser ativar o acesso à rede VPC do seu ambiente, consulte Conectar um ambiente a uma rede VPC.

Sobre os tipos de rede de ambiente

O Airflow gerenciado (terceira geração) usa dois tipos de rede de ambiente:

  • Rede de IP público:

    • Os componentes do Airflow do ambiente podem acessar a Internet. Esse é o tipo de rede padrão.

    • Em ambientes de IP público, todo o tráfego de saída para intervalos de IP público é roteado pelo gateway de Internet padrão. Essa limitação inclui IPs públicos de uso particular (PUPIs) usados no GKE, porque eles se sobrepõem aos intervalos de IP público. Como resultado, o tráfego destinado ao endereço PUPI não chega ao endereço GKE particular, mas é roteado para a Internet pública. Para ativar conexões com intervalos de PUPI, recomendamos que você mude o ambiente para a rede de IP particular e o conecte a uma rede VPC.

    • Os componentes do Airflow em ambientes de IP público estabelecem conexões de saída de endereços IP públicos e portas alocados automaticamente. Se você quiser que os ambientes de IP público usem endereços IP e portas predeterminados, você pode fazer isso por meio da conexão de uma rede VPC ao seu ambiente e mudando para IP particular. Nesse caso, o Airflow gerenciado roteia todo o tráfego, exceto o tráfego para serviços do Google, por essa rede.

  • Rede de IP particular:

    • A rede de IP particular é uma opção mais segura em comparação com a rede de IP público.

    • Os componentes do Airflow do ambiente não têm acesso à Internet. Para ambientes anexados a uma rede VPC, a configuração de rede controla o acesso à Internet.

    • Os ambientes de IP particular configuram o Acesso privado do Google pelo intervalo private.googleapis.com, que permite o acesso a APIs, serviços e domínios do Google compatíveis com esse intervalo.

      Para mais informações e a lista de serviços e domínios disponíveis em private.googleapis.com, consulte Configuração de rede na documentação da nuvem privada virtual.

    • Os ambientes de IP particular com o VPC Service Controls configuram o Acesso privado do Google pelo restricted.googleapis.com intervalo, que permite o acesso a APIs, serviços e domínios do Google compatíveis com esse intervalo.

      Para mais informações e a lista de serviços e domínios disponíveis em restricted.googleapis.com, consulte Configuração de rede na documentação da nuvem privada virtual.

    • Se um ambiente de IP particular estiver anexado a uma rede VPC personalizada, todo o tráfego será roteado para a rede VPC, exceto o tráfego para APIs, serviços e domínios do Google que estão disponíveis para ambientes de IP particular pelo Acesso privado do Google. Essa abordagem permite que os componentes do Airflow se conectem a IPs públicos de uso particular (PUPI) no GKE, já que o tráfego será roteado pela rede VPC em vez de ser enviado para a Internet pública.

Rede do Airflow gerenciado (segunda geração) em comparação com o Airflow gerenciado (terceira geração)

No Airflow gerenciado (terceira geração), os ambientes de IP particular não exigem configuração.

Os seguintes recursos de rede do Airflow gerenciado (segunda geração) não são mais relevantes no Airflow gerenciado (terceira geração):

  • Como configurar a rede de IP particular. Não é necessário especificar intervalos de IP, redes ou configurar regras de conectividade e firewall.

  • Como configurar o Private Service Connect. Não é necessário definir intervalos para o Private Service Connect no Airflow gerenciado (terceira geração).

  • Como usar intervalos de IP públicos de uso particular. Esse recurso ofereceu uma opção para estender os intervalos de IP disponíveis, que não são necessários no Airflow gerenciado (terceira geração).

  • Como usar o agente de mascaramento de IP. Não é necessário configurar a conectividade do cluster no Airflow gerenciado (terceira geração).

  • Como configurar redes autorizadas. Não é possível acessar o cluster do ambiente no Airflow gerenciado (terceira geração).

A configuração de DNS a seguir não é compatível com o Airflow gerenciado (terceira geração):

  • O Airflow Gerenciado (terceira geração) não oferece suporte a uma zona de DNS .internal definida pelo usuário. Se você criar uma zona de DNS para .internal, não será possível acessá-la.

Mudar o tipo de rede do ambiente

Console

  1. No Google Cloud console, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Na seção Configuração de rede, encontre o item Tipo de rede e clique em Editar.

  5. Na caixa de diálogo Tipo de rede, selecione:

    • Ambiente de IP público (padrão) para rede de IP público.
    • Ambiente de IP particular para rede de IP particular.
  6. Clique em Salvar.

gcloud

Os seguintes argumentos da CLI do Google Cloud mudam o tipo de rede do ambiente:

  • --enable-private-environment: muda para a rede de IP particular.
  • --disable-private-environment: muda para a rede de IP público (padrão).

Mudar para a rede de IP particular:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --enable-private-environment

Mudar para a rede de IP público:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-private-environment

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente.
  • LOCATION: a região em que o ambiente está localizado.

Exemplo (IP particular):

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --enable-private-environment

Exemplo (IP público):

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --disable-private-environment

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.private_environment_config.enable_private_environment.

    2. No corpo da solicitação, no campo enablePrivateEnvironment:

      • Especifique true para mudar para a rede de IP particular.
      • Especifique false para mudar para a rede de IP público (padrão).

Exemplo (IP particular):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.private_environment_config.enable_private_environment

"config": {
  "privateEnvironmentConfig": {
    "enablePrivateEnvironment": true
  }
}

Terraform

O campo enable_private_environment no bloco config especifica o tipo de rede do ambiente:

  • true: rede de IP particular.
  • false ou omitido: rede de IP público (padrão).
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    enable_private_environment = PRIVATE_IP_STATUS

  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente.
  • LOCATION: a região em que o ambiente está localizado.
  • PRIVATE_IP_STATUS: true para IP particular, false para IP público

Exemplo (IP particular):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    enable_private_environment = true

    ... other configuration parameters
  }
}

Configurar variáveis do servidor proxy

É possível definir http_proxy e https_proxy variáveis de ambiente no ambiente. Essas variáveis padrão do Linux são usadas por clientes da Web que são executados em contêineres do cluster do ambiente para rotear o tráfego pelos proxies especificados.

A variável NO_PROXY é definida por padrão como uma lista de domínios do Google, o endereço IP do servidor de metadados do Compute Engine do cluster do ambiente e localhost para que eles sejam excluídos do proxy:

.google.com,.googleapis.com,metadata.google.internal,169.254.169.254,localhost

Essa configuração permite criar um ambiente com variáveis de ambiente http_proxy e https_proxy definidas nos casos em que o proxy não está configurado para processar o tráfego para serviços do Google.

A seguir