Configure redes autorizadas no Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página explica como configurar redes autorizadas para o seu ambiente.

Acerca das redes autorizadas no Cloud Composer

As redes autorizadas permitem-lhe especificar intervalos CIDR que podem aceder ao plano de controlo do cluster do seu ambiente através de HTTPS.

Por exemplo, no Cloud Composer 2, esse acesso ao cluster do seu ambiente é necessário em ambientes de IP privado para executar comandos kubectl no cluster do seu ambiente. As redes a partir das quais tais pedidos são originados têm de ser autorizadas a aceder ao plano de controlo do cluster do seu ambiente.

Redes autorizadas em ambientes de IP privado e público

Pode especificar redes autorizadas para ambientes de IP público e IP privado.

  • Em ambientes de IP privado, pode configurar redes autorizadas para permitir que um determinado intervalo de endereços IP aceda ao plano de controlo do cluster do seu ambiente. Por exemplo, para permitir que determinados intervalos de IP executem comandos kubectl. Por predefinição, nos ambientes de IP privado, só pode executar estes comandos a partir de uma VM na sub-rede da VPC do ambiente de IP privado.

  • Em ambientes de IP público, pode configurar redes autorizadas para restringir o intervalo de endereços IP que podem aceder ao plano de controlo do cluster do seu ambiente. Por predefinição, nos ambientes de IP público, não existem restrições nos intervalos de IP que podem executar comandos kubectl.

Antes de começar

Crie ambientes com redes autorizadas

gcloud

Para criar um ambiente com redes autorizadas, use o argumento --enable-master-authorized-networks quando criar um ambiente. Em seguida, forneça uma lista de intervalos CIDR separados por vírgulas 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-2.13.9-airflow-2.10.5 \
    --enable-private-environment \
    --enable-master-authorized-networks \
    --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.
  • AUTHORIZED_NETWORKS_IP_RANGES com uma lista de intervalos de endereços IP separados por vírgulas na notação CIDR. Estes intervalos são adicionados como redes autorizadas para o cluster do seu ambiente.

Exemplo (ambiente de IP privado):

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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

Construa um pedido de API environments.create. No recurso Environment, especifique os parâmetros de configuração para 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": {
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
    },
    "masterAuthorizedNetworksConfig": {
      "enabled": true,
      "cidrBlocks": [
        {
          "displayName": "AUTHORIZED_NETWORK_NAME",
          "cidrBlock": "AUTHORIZED_NETWORK_RANGE"
        }
      ]
    }
  }
}

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • AUTHORIZED_NETWORK_NAME com o nome do intervalo de IPs da rede autorizada. Use este nome para identificar este bloco. Este campo é opcional.
  • AUTHORIZED_NETWORK_RANGE com um intervalo de endereços IP na notação CIDR. Este intervalo é adicionado como redes autorizadas para o cluster do seu ambiente.
  • Se quiser usar vários intervalos de IP, adicione intervalos adicionais a cidrBlocks.

Exemplo (ambiente de IP privado):

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

{
  "name": "example-environment",
  "config": {
    "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 cria um ambiente, o master_authorized_networks_config bloqueio nos configcontrolos de bloqueio autoriza redes para o seu 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 {
    private_environment_config {
      // Private environment parameters
    }

    master_authorized_networks_config {

      enabled = true

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

    }
  }
}

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.
  • AUTHORIZED_NETWORK_RANGE com um intervalo de endereços IP na notação CIDR. Este intervalo é adicionado como redes autorizadas para o cluster do seu ambiente.
  • AUTHORIZED_NETWORK_NAME com o nome do intervalo de IPs da rede autorizada. Use este nome para identificar este bloco.
  • Se quiser usar vários intervalos de IP, adicione blocos cidr_blocks adicionais para master_authorized_networks_config.

Exemplo (ambiente de IP privado):

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

  config {

    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"
      }
    }
  }
}

Especifique redes autorizadas para um ambiente existente

Pode 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 de intervalos CIDR separados por vírgulas no argumento --master-authorized-networks.

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

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.
  • AUTHORIZED_NETWORKS_IP_RANGES com uma lista de intervalos de endereços IP separados por vírgulas na notação CIDR. Estes intervalos são adicionados como redes autorizadas para o cluster do seu 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. Construa um pedido de API environments.patch.

  2. Neste pedido:

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

    2. No corpo do pedido, especifique intervalos CIDR para redes autorizadas.

"config": {

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

Substituir:

  • AUTHORIZED_NETWORK_NAME com o nome do intervalo de IPs da rede autorizada. Use este nome para identificar este bloco. Este campo é opcional.
  • AUTHORIZED_NETWORK_RANGE com um intervalo de endereços IP na notação CIDR. Este intervalo é adicionado como uma rede autorizada para o cluster do seu ambiente.
  • Se quiser usar vários intervalos de IP, adicione intervalos adicionais 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 master_authorized_networks_configbloqueio nos controlos de bloqueioconfig autoriza redes para o seu ambiente.

Para adicionar redes autorizadas para um ambiente de IP privado, adicione este bloco à 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"
      }

    }
  }
}

Substituir:

  • AUTHORIZED_NETWORK_RANGE com um intervalo de endereços IP na notação CIDR. Este intervalo é adicionado como redes autorizadas para o cluster do seu ambiente.
  • AUTHORIZED_NETWORK_NAME com o nome do intervalo de IPs da rede autorizada. Use este nome para identificar este bloco.
  • Se quiser usar vários intervalos de IP, adicione blocos cidr_blocks adicionais 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"
      }
    }
  }
}

Desative as redes autorizadas

Pode desativar redes autorizadas para um ambiente existente:

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

gcloud

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

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

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.

Exemplo:

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

API

  1. Construa um pedido de API environments.patch.

  2. Neste pedido:

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

    2. No corpo do pedido, 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 master_authorized_networks_configbloqueio nos controlos de bloqueioconfig autoriza redes para o seu ambiente.

Para desativar as redes autorizadas, defina o campo enabled no bloco master_authorized_networks_config como 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
    }
  }
}

O que se segue?