Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明如何為環境設定授權網路。
關於 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.13.5-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
以半形逗號分隔的 IP 位址範圍清單,採用 CIDR 標記法。這些範圍會新增為環境叢集的授權網路。
範例 (私人 IP 環境):
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.13.5-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
以半形逗號分隔的 IP 位址範圍清單,採用 CIDR 標記法。這些範圍會新增為環境叢集的授權網路。
範例:
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
建構
environments.patch
API 要求。在這個要求中:
在
updateMask
參數中指定config.softwareConfig.masterAuthorizedNetworksConfig
遮罩。在要求主體中,指定授權網路的 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
建構
environments.patch
API 要求。在這個要求中:
在
updateMask
參數中指定config.softwareConfig.masterAuthorizedNetworksConfig
遮罩。在要求主體中,請在
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
}
}
}