Autorisierte Netzwerke in Cloud Composer konfigurieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, wie Sie autorisierte Netzwerke für Ihre Umgebung konfigurieren.

Autorisierte Netzwerke in Cloud Composer

Mit autorisierten Netzwerken können Sie CIDR-Bereiche angeben, die über HTTPS auf die Cluster-Steuerungsebene Ihrer Umgebung zugreifen können.

In Cloud Composer 1 beispielsweise ein solcher Zugriff auf den Cluster Ihrer Umgebung ist in privaten IP-Umgebungen erforderlich, Airflow-Befehlszeilenbefehle(gcloud composer environments run) ausführen. Netzwerke, aus denen solche Anfragen stammen, müssen für den Zugriff autorisiert sein die Steuerungsebene Ihres Umgebungsclusters.

Autorisierte Netzwerke in privaten und öffentlichen IP-Umgebungen

Sie können autorisierte Netzwerke sowohl für öffentliche IP-Umgebungen als auch für private IP-Umgebungen angeben.

  • In privaten IP-Umgebungen können Sie autorisierte Netzwerke konfigurieren, um einem bestimmten Bereich von IP-Adressen Zugriff auf die Steuerungsebene des Clusters Ihrer Umgebung zu gewähren. So können Sie beispielsweise festlegen, dass bestimmte IP-Bereiche kubectl- und Airflow-Befehle ausführen können. Standardmäßig können Sie in privaten IP-Umgebungen diese Befehle nur von einer VM im VPC-Subnetzwerk der privaten IP-Umgebung ausführen.

  • In öffentlichen IP-Umgebungen können Sie autorisierte Netzwerke konfigurieren, um den Bereich der IP-Adressen einzuschränken, die auf die Steuerungsebene des Clusters Ihrer Umgebung zugreifen können. Standardmäßig sind in Umgebungen mit öffentlichen IP-Adressen keine Einschränkungen für IP-Bereiche, die kubectl ausführen können und Airflow-Kommandozeilenbefehle.

Hinweise

Umgebungen mit autorisierten Netzwerken erstellen

gcloud

Verwenden Sie beim Erstellen einer Umgebung das Argument --enable-master-authorized-networks, um eine Umgebung mit autorisierten Netzwerken zu erstellen. Geben Sie dann eine durch Kommas getrennte Liste von CIDR-Bereichen im Argument --master-authorized-networks an.

So geben Sie autorisierte Netzwerke für eine private IP-Umgebung an:

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • AUTHORIZED_NETWORKS_IP_RANGES durch eine durch Kommas getrennte Liste von IP-Adressbereichen in der CIDR-Notation. Diese Bereiche werden als autorisierte Netzwerke für den Cluster Ihrer Umgebung hinzugefügt.

Beispiel (private IP-Umgebung):

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

Erstellen Sie eine API-Anfrage environments.create. Geben Sie in der Umgebungsressource die Konfigurationsparameter für eine Umgebung mit autorisierten Netzwerken an.

So geben Sie autorisierte Netzwerke für eine private IP-Umgebung an:

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • AUTHORIZED_NETWORK_NAME durch den Namen des autorisierten Netzwerk-IP-Bereichs. Mit diesem Namen identifizieren Sie den Block. Dieses Feld ist optional.
  • AUTHORIZED_NETWORK_RANGE durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als autorisierte Netzwerke für den Cluster Ihrer Umgebung hinzugefügt.
  • Wenn Sie mehrere IP-Bereiche verwenden möchten, fügen Sie zusätzliche Bereiche zu cidrBlocks hinzu.

Beispiel (private IP-Umgebung):

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

Beim Erstellen einer Umgebung steuern die Blöcke master_authorized_networks_config und config die autorisierten Netzwerke für Ihre Umgebung.

So geben Sie autorisierte Netzwerke für eine private IP-Umgebung an:

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

    }
  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • AUTHORIZED_NETWORK_RANGE durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als autorisierte Netzwerke für den Cluster Ihrer Umgebung hinzugefügt.
  • AUTHORIZED_NETWORK_NAME durch den Namen des autorisierten Netzwerk-IP-Bereichs. Mit diesem Namen identifizieren Sie den Block.
  • Wenn Sie mehrere IP-Bereiche verwenden möchten, fügen Sie master_authorized_networks_config zusätzliche cidr_blocks-Blöcke hinzu.

Beispiel (private IP-Umgebung):

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

Autorisierte Netzwerke für eine vorhandene Umgebung angeben

Sie können autorisierte Netzwerke für eine vorhandene Umgebung angeben.

gcloud

Verwenden Sie das Argument --enable-master-authorized-networks, um autorisierte Netzwerke anzugeben. Geben Sie dann eine durch Kommas getrennte Liste von CIDR-Bereichen im Argument --master-authorized-networks an.

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • AUTHORIZED_NETWORKS_IP_RANGES durch eine durch Kommas getrennte Liste von IP-Adressbereichen in der CIDR-Notation. Diese Bereiche werden als autorisierte Netzwerke für den Cluster Ihrer Umgebung hinzugefügt.

Beispiel:

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. Erstellen Sie eine API-Anfrage environments.patch.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die config.softwareConfig.masterAuthorizedNetworksConfig-Maske an.

    2. Geben Sie im Anfragetext CIDR-Bereiche für autorisierte Netzwerke an.

"config": {

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

Ersetzen Sie:

  • AUTHORIZED_NETWORK_NAME durch den Namen des autorisierten Netzwerk-IP-Bereichs. Mit diesem Namen identifizieren Sie den Block. Dieses Feld ist optional.
  • AUTHORIZED_NETWORK_RANGE durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als autorisiertes Netzwerk für den Cluster Ihrer Umgebung hinzugefügt.
  • Wenn Sie mehrere IP-Bereiche verwenden möchten, fügen Sie zusätzliche Bereiche zu cidrBlocks hinzu.

Beispiel:

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

Der Block master_authorized_networks_config im Block config steuert autorisierte Netzwerke für Ihre Umgebung.

Wenn Sie autorisierte Netzwerke für eine private IP-Umgebung hinzufügen möchten, fügen Sie Ihrer Umgebungsdefinition diesen Block hinzu:

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

    }
  }
}

Ersetzen Sie:

  • AUTHORIZED_NETWORK_RANGE durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als autorisierte Netzwerke für den Cluster Ihrer Umgebung hinzugefügt.
  • AUTHORIZED_NETWORK_NAME durch den Namen des autorisierten Netzwerk-IP-Bereichs. Mit diesem Namen identifizieren Sie den Block.
  • Wenn Sie mehrere IP-Bereiche verwenden möchten, fügen Sie zusätzliche cidr_blocks-Blöcke zu an master_authorized_networks_config.

Beispiel:

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

Autorisiertes Netzwerk deaktivieren

Sie können autorisierte Netzwerke für eine vorhandene Umgebung deaktivieren:

  • Bei Umgebungen mit privaten IP-Adressen wird der Zugriff für Bereiche entfernt, die zuvor als autorisiertes Netzwerk hinzugefügt wurden.
  • Bei öffentlichen IP-Umgebungen werden zuvor konfigurierte Einschränkungen aufgehoben.

gcloud

Verwenden Sie das Argument --disable-master-authorized-networks, um autorisierte Netzwerke zu deaktivieren.

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.

Beispiel:

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

API

  1. Erstellen Sie eine API-Anfrage environments.patch.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die config.softwareConfig.masterAuthorizedNetworksConfig-Maske an.

    2. Geben Sie im Anfragetext false im Feld enabled an.

"config": {

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

Beispiel:

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

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

Terraform

Der Block master_authorized_networks_config in den Steuerelementen für den config-Block und autorisierte Netzwerke für Ihre Umgebung.

Zum Deaktivieren autorisierter Netzwerke legen Sie das Feld enabled fest in den master_authorized_networks_config-Block zu false.

Beispiel:

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

Nächste Schritte