在 Cloud Composer 中設定授權網路

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer„�

本頁說明如何為環境設定授權網路

關於 Cloud Composer 中的授權網路

「授權網路」可讓您指定可使用 HTTPS 存取環境叢集控制層的 CIDR 範圍。

舉例來說,在 Cloud Composer 2 中,私人 IP 環境需要這類叢集存取權,才能在環境的叢集上執行 kubectl 指令。這類要求來源的網路必須獲得授權,才能存取環境叢集的控制層。

私人和公開 IP 環境中的授權網路

您可以為公開 IP 和私人 IP 環境指定授權網路。

  • 在私人 IP 環境中,您可以設定授權網路,允許特定範圍的 IP 位址存取環境叢集的控制層。舉例來說,允許特定 IP 範圍執行 kubectl 指令。根據預設,在私人 IP 環境中,您只能從私人 IP 環境的 VPC 子網路中的 VM 執行這些指令。

  • 在公開 IP 環境中,您可以設定授權網路,限制可存取環境叢集控制層的 IP 位址範圍。根據預設,在公開 IP 環境中,可執行 kubectl 指令的 IP 範圍沒有任何限制。

事前準備

建立具有授權網路的環境

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 範圍,請在 master_authorized_networks_config 中新增額外的 cidr_blocks 區塊。

範例 (私人 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 範圍,請在 master_authorized_networks_config 中新增額外的 cidr_blocks 區塊。

範例:

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

後續步驟