Cloud Composer で承認済みネットワークを構成する

Cloud Composer 1 | Cloud Composer 2

このページでは、環境に承認済みネットワークを構成する方法について説明します。

Cloud Composer の承認済みネットワークについて

承認済みネットワークでは、HTTPS を使用して環境のクラスタ コントロール プレーンにアクセスできる CIDR 範囲を指定できます。

たとえば、プライベート IP 環境で Airflow CLI コマンドgcloud composer environments run)を実行するには、環境のクラスタへのそのようなアクセスが必要です。このリクエストの送信元となるネットワークは、環境クラスタのコントロール プレーンへのアクセスが承認されている必要があります。

プライベート IP 環境とパブリック IP 環境における承認済みネットワーク

承認済みネットワークは、パブリック IP 環境とプライベート IP 環境の両方で指定できます。

  • プライベート IP 環境では、特定の範囲の IP アドレスが環境のクラスタのコントロール プレーンにアクセスできるように承認済みネットワークを構成できます。たとえば、特定の IP 範囲で Airflow CLI コマンドを実行できるようにします。デフォルトでは、プライベート IP 環境では、プライベート IP 環境の VPC サブネットワーク内の VM からのみ Airflow CLI コマンドを実行できます。

  • パブリック IP 環境では、環境のクラスタのコントロール プレーンにアクセスできる IP アドレスの範囲を制限する承認済みネットワークを構成できます。デフォルトでは、パブリック IP 環境では、Airflow CLI コマンドを実行できる IP 範囲に制限はありません。

始める前に

  • 承認済みネットワークの指定には、gcloud、Terraform、REST API を使用できます。

  • 承認済みネットワークは、環境を作成するときに指定するか、既存の環境を指定できます。

承認済みネットワークがある環境を作成する

gcloud

承認済みネットワークがある環境を作成するには、環境の作成時に --enable-master-authorized-networks 引数を使用します。次に、--master-authorized-networks 引数で CIDR 範囲のカンマ区切りリストを指定します。

プライベート IP 環境で承認済みネットワークを指定するには、次の内容で実行します。

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-master-authorized-networks \
    --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • AUTHORIZED_NETWORKS_IP_RANGES は、CIDR 表記の IP アドレス範囲のカンマ区切りリストに置き換えます。これらの範囲は、環境のクラスタの承認済みネットワークとして追加されます。

例(プライベート IP 環境):

gcloud beta composer environments create example-environment \
    --location us-central1 \
    --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

environments.create API リクエストを作成します。Environment リソースで、承認済みネットワークがある環境の構成パラメータを指定します。

プライベート IP 環境で承認済みネットワークを指定するには、次の内容で実行します。

// POST https://composer.googleapis.com/v1beta1/{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"
        }
      ]
    }
  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • AUTHORIZED_NETWORK_NAME は、承認済みネットワーク IP 範囲の名前に置き換えます。この名前を使用して、このブロックを識別します。このフィールドは省略可能です。
  • AUTHORIZED_NETWORK_RANGE は、CIDR 表記の IP アドレス範囲に置き換えます。この範囲は、環境のクラスタの承認済みネットワークとして追加されます。
  • 複数の IP 範囲を使用する場合は、cidrBlocks に範囲を追加します。

例(プライベート IP 環境):

// POST https://composer.googleapis.comv1beta1/{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

プレビューでは、Terraform で承認済みネットワークを指定できません。

既存の環境に承認済みネットワークを指定する

承認済みネットワークは、既存の環境に指定できます。

gcloud

承認済みネットワークを指定するには、--enable-master-authorized-networks 引数を使用します。次に、--master-authorized-networks 引数で CIDR 範囲のカンマ区切りリストを指定します。

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

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • AUTHORIZED_NETWORKS_IP_RANGES は、CIDR 表記の IP アドレス範囲のカンマ区切りリストに置き換えます。これらの範囲は、環境のクラスタの承認済みネットワークとして追加されます。

例:

gcloud beta 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. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.softwareConfig.masterAuthorizedNetworksConfig マスクを指定します。

    2. リクエストの本文で、承認済みネットワークの CIDR 範囲を指定します。

"config": {

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

次のように置き換えます。

  • AUTHORIZED_NETWORK_NAME は、承認済みネットワーク IP 範囲の名前に置き換えます。この名前を使用して、このブロックを識別します。このフィールドは省略可能です。
  • AUTHORIZED_NETWORK_RANGE は、CIDR 表記の IP アドレス範囲に置き換えます。この範囲は、環境のクラスタの承認済みネットワークとして追加されます。
  • 複数の IP 範囲を使用する場合は、cidrBlocks に範囲を追加します。

例:

// PATCH https://composer.googleapis.com/v1beta1/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

プレビューでは、Terraform で承認済みネットワークを指定できません。

承認済みネットワークの無効化

既存の環境の承認済みネットワークを無効にできます。

  • プライベート IP 環境では、これによって、以前に承認済みネットワークとして追加した範囲へのアクセスが削除されます。
  • パブリック IP 環境の場合は、以前に構成した制限がなくなります。

gcloud

承認済みネットワークを無効にするには、--disable-master-authorized-networks 引数を使用します。

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

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。

例:

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

API

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.softwareConfig.masterAuthorizedNetworksConfig マスクを指定します。

    2. リクエストの本文で、enabled フィールドに false を指定します。

"config": {

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

例:

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

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

Terraform

プレビューでは、Terraform で承認済みネットワークを指定できません。

次のステップ