Configurar redes autorizadas no Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, você verá como configurar redes autorizadas no seu ambiente.

Sobre redes autorizadas no Cloud Composer

As redes autorizadas permitem especificar intervalos CIDR que podem acessar o plano de controle do cluster do seu ambiente usando HTTPS.

Por exemplo, no Cloud Composer 1, esse acesso ao cluster do ambiente é necessário em ambientes de IP particular para executar comandos da CLI do Airflow (gcloud composer environments run). As redes de origem dessas solicitações precisam ser autorizadas a acessar o plano de controle do cluster do ambiente.

Redes autorizadas em ambientes de IP privado e público

É possível especificar redes autorizadas para ambientes de IP público e IP privado.

  • Em ambientes de IP privado, é possível configurar redes autorizadas para permitir que um determinado intervalo de endereços IP acesse o plano de controle do cluster do seu ambiente. Por exemplo, para permitir que determinados intervalos de IP executem comandos kubectl e da CLI do Airflow. De Por padrão, em ambientes de IP privado, só é possível executar esses comandos de um VM na sub-rede VPC do ambiente de IP privado.

  • Em ambientes de IP público, é possível configurar redes autorizadas para restringir o intervalo de endereços IP que podem acessar o plano de controle do cluster do ambiente. Por padrão, em ambientes de IP público restrições em intervalos de IP que podem executar kubectl e comandos da CLI do Airflow.

Antes de começar

Criar ambientes com redes autorizadas

gcloud

Para criar um ambiente com redes autorizadas, use o argumento --enable-master-authorized-networks ao criar um ambiente. Em seguida, forneça uma lista separada por vírgulas de intervalos CIDR no argumento --master-authorized-networks.

Para especificar redes autorizadas para um ambiente de IP privado:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-master-authorized-networks \
    --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;
  • AUTHORIZED_NETWORKS_IP_RANGES por uma lista separada por vírgulas de intervalos de endereços IP na notação CIDR. Esses intervalos são adicionados como redes autorizadas para o cluster do ambiente.

Exemplo (ambiente de IP particular):

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --enable-master-authorized-networks \
    --master-authorized-networks 192.0.2.0/23,192.0.4.0/23

API

Crie uma solicitação de API environments.create. No recurso Ambiente, especifique os parâmetros de configuração de um ambiente com redes autorizadas.

Para especificar redes autorizadas para um ambiente de IP privado:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {

        "useIpAliases": true,
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
    },
    "masterAuthorizedNetworksConfig": {
      "enabled": true,
      "cidrBlocks": [
        {
          "displayName": "AUTHORIZED_NETWORK_NAME",
          "cidrBlock": "AUTHORIZED_NETWORK_RANGE"
        }
      ]
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • AUTHORIZED_NETWORK_NAME pelo nome do intervalo de IP da rede autorizado; Use esse nome para identificar esse bloco. Este campo é opcional.
  • AUTHORIZED_NETWORK_RANGE por um intervalo de endereços IP na notação CIDR. Esse intervalo é adicionado como redes autorizadas para o cluster do ambiente.
  • Se você quiser usar vários intervalos de IP, adicione intervalos extras a cidrBlocks.

Exemplo (ambiente de IP particular):

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
    },
    "masterAuthorizedNetworksConfig": {
      "enabled": true,
      "cidrBlocks": [
        {
          "displayName": "example_range_1",
          "cidrBlock": "192.0.2.0/23"
        },
        {
          "displayName": "example_range_2",
          "cidrBlock": "192.0.4.0/23"
        }
      ]
    }
  }
}

Terraform

Quando você cria um ambiente, o bloco master_authorized_networks_config no bloco config controla as redes autorizadas para o ambiente.

Para especificar redes autorizadas para um ambiente de IP privado:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    node_config {
      ip_allocation_policy = [{
        use_ip_aliases = true
      }]
    }
    private_environment_config {
      // Private environment parameters
    }

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "AUTHORIZED_NETWORK_RANGE"
          display_name = "AUTHORIZED_NETWORK_NAME"
      }

    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;
  • AUTHORIZED_NETWORK_RANGE por um intervalo de endereços IP na notação CIDR. Esse intervalo é adicionado como redes autorizadas para o cluster do ambiente.
  • AUTHORIZED_NETWORK_NAME pelo nome do intervalo de IP da rede autorizado; Use esse nome para identificar esse bloco.
  • Se você quiser usar vários intervalos de IP, adicione mais blocos cidr_blocks a para master_authorized_networks_config.

Exemplo (ambiente de IP particular):

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

  config {
    node_config {

      // Specify your network and subnetwork
      network    = google_compute_network.example_network.id
      subnetwork = google_compute_subnetwork.example_subnet.id

      ip_allocation_policy = [{
        use_ip_aliases = true
      }]
    }

    private_environment_config {
      // Private environment parameters
    }

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "192.0.2.0/23"
          display_name = "example_range_1"
      }

      cidr_blocks {
          cidr_block = "192.0.4.0/23"
          display_name = "example_range_2"
      }
    }
  }
}

Especificar redes autorizadas para um ambiente existente

É possível especificar redes autorizadas para um ambiente existente

gcloud

Para especificar redes autorizadas, use o argumento --enable-master-authorized-networks. Em seguida, forneça uma lista separada por vírgulas de intervalos CIDR no argumento --master-authorized-networks.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --enable-master-authorized-networks \
  --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;
  • AUTHORIZED_NETWORKS_IP_RANGES por uma lista separada por vírgulas de intervalos de endereços IP na notação CIDR. Esses intervalos são adicionados como redes autorizadas para o cluster do ambiente.

Exemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --enable-master-authorized-networks \
  --master-authorized-networks 192.0.2.0/23,192.0.4.0/23

API

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

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.softwareConfig.masterAuthorizedNetworksConfig.

    2. No corpo da solicitação, especifique intervalos CIDR para redes autorizadas.

"config": {

  "masterAuthorizedNetworksConfig": {
    "enabled": true,
    "cidrBlocks": [
      {
        "displayName": "AUTHORIZED_NETWORK_NAME",
        "cidrBlock": "AUTHORIZED_NETWORK_RANGE"
      }
    ]
  }
}

Substitua:

  • AUTHORIZED_NETWORK_NAME pelo nome do intervalo de IP da rede autorizado; Use esse nome para identificar esse bloco. Este campo é opcional.
  • AUTHORIZED_NETWORK_RANGE por um intervalo de endereços IP na notação CIDR. Esse intervalo é adicionado como uma rede autorizada para o cluster do ambiente.
  • Se você quiser usar vários intervalos de IP, adicione intervalos extras a cidrBlocks.

Exemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.masterAuthorizedNetworksConfig

"config": {
  "masterAuthorizedNetworksConfig": {
    "enabled": true,
    "cidrBlocks": [
      {
        "displayName": "example_range_1",
        "cidrBlock": "192.0.2.0/23"
      },
      {
        "displayName": "example_range_2",
        "cidrBlock": "192.0.4.0/23"
      }
    ]
  }
}

Terraform

O bloco master_authorized_networks_config no bloco config controla as redes autorizadas do seu ambiente.

Para adicionar redes autorizadas a um ambiente de IP privado, adicione este bloco a a definição do ambiente:

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

  config {

    // Other environment parameters

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "AUTHORIZED_NETWORK_RANGE"
          display_name = "AUTHORIZED_NETWORK_NAME"
      }

    }
  }
}

Substitua:

  • AUTHORIZED_NETWORK_RANGE por um intervalo de endereços IP na notação CIDR. Esse intervalo é adicionado como redes autorizadas para o cluster do ambiente.
  • AUTHORIZED_NETWORK_NAME pelo nome do intervalo de IP da rede autorizado; Use esse nome para identificar esse bloco.
  • Se você quiser usar vários intervalos de IP, adicione mais blocos cidr_blocks a para master_authorized_networks_config.

Exemplo:

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

  config {

    // Other environment parameters

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "192.0.2.0/23"
          display_name = "example_range_1"
      }

      cidr_blocks {
          cidr_block = "192.0.4.0/23"
          display_name = "example_range_2"
      }
    }
  }
}

Desativar redes autorizadas

É possível desativar redes autorizadas em um ambiente atual:

  • Para ambientes de IP privado, isso remove o acesso de intervalos que foram adicionados anteriormente como rede autorizada.
  • Em ambientes de IP público, isso remove as restrições configuradas anteriormente.

gcloud

Para desativar redes autorizadas, use o argumento --disable-master-authorized-networks.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-master-authorized-networks

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;

Exemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --disable-master-authorized-networks

API

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

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.softwareConfig.masterAuthorizedNetworksConfig.

    2. No corpo da solicitação, especifique false no campo enabled.

"config": {

  "masterAuthorizedNetworksConfig": {
    "enabled": false
  }
}

Exemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.masterAuthorizedNetworksConfig

"config": {
  "masterAuthorizedNetworksConfig": {
    "enabled": false,
  }
}

Terraform

O bloco master_authorized_networks_config nos controles do bloco config autorizadas do seu ambiente.

Para desativar redes autorizadas, defina o campo enabled em bloco master_authorized_networks_config para false.

Exemplo:

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

  config {

    // Other environment parameters

    master_authorized_networks_config {
      enabled = false
    }
  }
}

A seguir