Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明如何為環境設定授權網路。
關於 Cloud Composer 中的授權網路
授權網路可讓您指定可使用 HTTPS 存取環境叢集控制層的 CIDR 範圍。
舉例來說,在 Cloud Composer 1 中,私人 IP 環境必須具備這種環境叢集存取權,才能執行 Airflow CLI 指令(gcloud composer environments run
)。產生這類要求的網路必須獲得授權,才能存取環境叢集的控制層。
私人和公開 IP 環境中的授權網路
您可以為公開 IP 和私人 IP 環境指定已授權網路。
在私人 IP 環境中,您可以設定授權網路,允許特定 IP 位址範圍存取環境叢集的控制層。舉例來說,您可以允許特定 IP 範圍執行
kubectl
和 Airflow CLI 指令。根據預設,在私人 IP 環境中,您只能從私人 IP 環境的 VPC 子網路中的 VM 執行這些指令。在公開 IP 環境中,您可以設定授權網路,限制可存取環境叢集控制層的 IP 位址範圍。根據預設,在公開 IP 環境中,可執行
kubectl
和 Airflow CLI 指令的 IP 範圍沒有任何限制。
事前準備
建立具有授權網路的環境
gcloud
如要建立具有授權網路的環境,請在建立環境時使用 --enable-master-authorized-networks
引數。然後在 --master-authorized-networks
引數中提供以半形逗號分隔的 CIDR 範圍清單。
如要為私人 IP 環境指定授權網路,請按照下列步驟操作:
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
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。AUTHORIZED_NETWORKS_IP_RANGES
以半形逗號分隔的 IP 位址範圍清單,採用 CIDR 標記法。這些範圍會新增為環境叢集的授權網路。
範例 (私人 IP 環境):
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
建構 environments.create
API 要求。在 Environment 資源中,指定具有授權網路的環境設定參數。
如要為私人 IP 環境指定授權網路,請按照下列步驟操作:
// 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"
}
]
}
}
}
取代:
- 將
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": {
"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
建立環境時,config
區塊中的 master_authorized_networks_config
區塊會控管環境的授權網路。
如要為私人 IP 環境指定授權網路,請按照下列步驟操作:
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"
}
}
}
}
取代:
- 將
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 {
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"
}
}
}
}
為現有環境指定授權網路
您可以為現有環境指定授權網路。
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
}
}
}