Configurer des réseaux autorisés dans Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment configurer des réseaux autorisés pour votre environnement.

À propos des réseaux autorisés dans Cloud Composer

Les réseaux autorisés vous permettent de spécifier des plages CIDR pouvant accéder au plan de contrôle des clusters de votre environnement à l'aide du protocole HTTPS.

Par exemple, dans Cloud Composer 1, un tel accès au cluster de votre environnement est requis dans les environnements IP privés pour exécuter les commandes de CLI Airflow(gcloud composer environments run). Les réseaux à l'origine de ces requêtes doivent être autorisés à accéder le plan de contrôle du cluster de votre environnement.

Réseaux autorisés dans les environnements d'adresses IP privées et publiques

Vous pouvez spécifier des réseaux autorisés pour les adresses IP publiques et privées.

  • Dans les environnements d'adresse IP privée, vous pouvez configurer des réseaux autorisés pour autoriser une certaine plage d'adresses IP à accéder au plan de contrôle du cluster de votre environnement. Par exemple, pour autoriser certaines plages d'adresses IP exécuter les commandes kubectl et de CLI Airflow. Par défaut, dans les environnements d'adresse IP privée, vous ne pouvez exécuter ces commandes qu'à partir d'une VM du sous-réseau VPC de l'environnement d'adresse IP privée.

  • Dans les environnements d'adresse IP publique, vous pouvez configurer des réseaux autorisés pour restreindre la plage d'adresses IP pouvant accéder au plan de contrôle du cluster de votre environnement. Par défaut, dans les environnements d'adresse IP publique, aucune restriction n'est imposée sur les plages d'adresses IP pouvant exécuter kubectl et les commandes de CLI Airflow.

Avant de commencer

Créer des environnements avec des réseaux autorisés

gcloud

Pour créer un environnement contenant des réseaux autorisés, utilisez l'argument --enable-master-authorized-networks lorsque vous créez un environnement. Fournissez ensuite une liste de plages CIDR séparées par une virgule dans l'argument --master-authorized-networks.

Pour spécifier des réseaux autorisés pour un environnement d'adresse IP privée, procédez comme suit :

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • AUTHORIZED_NETWORKS_IP_RANGES par la liste des plages d'adresses IP au format CIDR, séparées par une virgule. Ces plages sont ajoutées en tant que réseaux autorisés pour le cluster de votre environnement.

Exemple (environnement d'adresse IP privée) :

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

Rédigez une requête API environments.create. Dans la ressource Environnement, spécifiez les paramètres de configuration d'un environnement avec des réseaux autorisés.

Pour spécifier des réseaux autorisés pour un environnement d'adresse IP privée, procédez comme suit :

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • AUTHORIZED_NETWORK_NAME par le nom de la plage d'adresses IP du réseau autorisé. Ce nom vous permet d'identifier ce bloc. Ce champ est facultatif.
  • AUTHORIZED_NETWORK_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que réseau autorisé pour le cluster de votre environnement.
  • Si vous souhaitez utiliser plusieurs plages d'adresses IP, ajoutez des plages supplémentaires à cidrBlocks.

Exemple (environnement d'adresse IP privée) :

// 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

Lorsque vous créez un environnement, la classe master_authorized_networks_config le bloc config contrôle les réseaux autorisés pour votre environnement.

Pour spécifier des réseaux autorisés pour un environnement d'adresse IP privée, procédez comme suit :

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

    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • AUTHORIZED_NETWORK_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que réseau autorisé pour le cluster de votre environnement.
  • AUTHORIZED_NETWORK_NAME par le nom de la plage d'adresses IP du réseau autorisé. Ce nom vous permet d'identifier ce bloc.
  • Si vous souhaitez utiliser plusieurs plages d'adresses IP, ajoutez des blocs cidr_blocks supplémentaires à à master_authorized_networks_config.

Exemple (environnement d'adresse IP privée) :

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

Spécifier des réseaux autorisés pour un environnement existant

Vous pouvez spécifier des réseaux autorisés pour un environnement existant.

gcloud

Pour spécifier des réseaux autorisés, utilisez l'argument --enable-master-authorized-networks. Fournissez ensuite une liste de plages CIDR séparées par une virgule dans l'argument --master-authorized-networks.

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • AUTHORIZED_NETWORKS_IP_RANGES par la liste des plages d'adresses IP au format CIDR, séparées par une virgule. Ces plages sont ajoutées en tant que réseaux autorisés pour le cluster de votre environnement.

Exemple :

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. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.masterAuthorizedNetworksConfig.

    2. Dans le corps de la requête, spécifiez des plages CIDR pour les réseaux autorisés.

"config": {

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

Remplacez :

  • AUTHORIZED_NETWORK_NAME par le nom de la plage d'adresses IP du réseau autorisé. Ce nom vous permet d'identifier ce bloc. Ce champ est facultatif.
  • AUTHORIZED_NETWORK_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que réseau autorisé pour le cluster de votre environnement.
  • Si vous souhaitez utiliser plusieurs plages d'adresses IP, ajoutez des plages supplémentaires à cidrBlocks.

Exemple :

// 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

Le bloc master_authorized_networks_config du bloc config contrôle les réseaux autorisés pour votre environnement.

Pour ajouter des réseaux autorisés à un environnement IP privé, ajoutez ce bloc à la définition de votre environnement:

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

    }
  }
}

Remplacez :

  • AUTHORIZED_NETWORK_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que réseau autorisé pour le cluster de votre environnement.
  • AUTHORIZED_NETWORK_NAME par le nom de la plage d'adresses IP du réseau autorisé. Ce nom vous permet d'identifier ce bloc.
  • Si vous souhaitez utiliser plusieurs plages d'adresses IP, ajoutez des blocs cidr_blocks supplémentaires à master_authorized_networks_config.

Exemple :

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

Désactiver les réseaux autorisés

Vous pouvez désactiver les réseaux autorisés pour un environnement existant :

  • Pour les environnements d'adresse IP privée, cela supprime l'accès des plages précédemment ajoutées en tant que réseaux autorisés.
  • Pour les environnements d'adresses IP publiques, cela supprime les restrictions précédemment configurées.

gcloud

Pour désactiver les réseaux autorisés, utilisez l'argument --disable-master-authorized-networks.

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Exemple :

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

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.masterAuthorizedNetworksConfig.

    2. Dans le corps de la requête, spécifiez false dans le champ enabled.

"config": {

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

Exemple :

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

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

Terraform

Le bloc master_authorized_networks_config dans les commandes de bloc config autorisés pour votre environnement.

Pour désactiver les réseaux autorisés, définissez le champ enabled dans le bloc master_authorized_networks_config à false.

Exemple :

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

Étape suivante