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

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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

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

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

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

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

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

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

準備

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

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

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

gcloud

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

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

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

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

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

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

以下のように置き換えます。

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

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

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

環境を作成するときに、config ブロックの master_authorized_networks_config ブロックで、環境の承認済みネットワークを制御します。

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

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

以下のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • AUTHORIZED_NETWORK_RANGE は、CIDR 表記の IP アドレス範囲に置き換えます。この範囲は、環境のクラスタの承認済みネットワークとして追加されます。
  • AUTHORIZED_NETWORK_NAME は、承認済みネットワーク IP 範囲の名前に置き換えます。この名前を使用して、このブロックを識別します。
  • 複数の IP 範囲を使用する場合は、追加の cidr_blocks ブロックを master_authorized_networks_config に追加します。

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

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

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

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

gcloud

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

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

config ブロックの master_authorized_networks_config ブロックは、ご使用の環境の承認済みネットワークを制御します。

プライベート IP 環境用の承認済みネットワークを追加するには、次のブロックを環境定義に追加します。

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

以下のように置き換えます。

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

例:

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

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

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

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

gcloud

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

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

以下のように置き換えます。

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

例:

gcloud 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/v1/projects/example-project/ // locations/us-central1/environments/example-environment?updateMask= // config.softwareConfig.masterAuthorizedNetworksConfig  "config": {   "masterAuthorizedNetworksConfig": {     "enabled": false,   } } 

Terraform

config ブロックの master_authorized_networks_config ブロックは、ご使用の環境の承認済みネットワークを制御します。

承認済みネットワークを無効にするには、master_authorized_networks_config ブロックの enabled フィールドを false に設定します。

例:

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

次のステップ