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.

Beispielsweise ist ein solcher Zugriff auf den Cluster Ihrer Umgebung in privaten IP-Umgebungen in Cloud Composer 1 erforderlich, um Befehle der Airflow-Befehlszeile auszuführen (gcloud composer environments run). Netzwerke, von denen solche Anfragen stammen, müssen für den Zugriff auf die Steuerungsebene des Clusters Ihrer Umgebung autorisiert sein.

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. Um z. B. bestimmten IP-Bereichen die Befehle kubectl und die Airflow-Befehlszeile ausführen. Von können Sie diese Befehle in privaten IP-Umgebungen standardmäßig nur über eine VM im VPC-Subnetzwerk der privaten IP-Umgebung.

  • 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

Wenn Sie eine Umgebung erstellen, wird vom master_authorized_networks_config im config-Block steuert autorisierte Netzwerke für Ihr zu verbessern.

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 zusätzliche cidr_blocks-Blöcke zu an master_authorized_networks_config.

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 zum Angeben autorisierter Netzwerke die --enable-master-authorized-networks . 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 in den Steuerelementen für den config-Block und autorisierte Netzwerke für Ihre Umgebung.

Fügen Sie diesen Block zum Hinzufügen autorisierter Netzwerke für eine private IP-Umgebung hinzu Ihrer Umgebungsdefinition:

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.

Wenn Sie autorisierte Netzwerke deaktivieren möchten, setzen Sie das Feld enabled im Block master_authorized_networks_config auf 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