Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页介绍了如何为您的环境配置授权网络。
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 子网中的虚拟机运行这些命令。在公共 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
替换为采用 CIDR 表示法的 IP 地址范围的逗号分隔列表。这些范围将添加为环境集群的授权网络。
示例(专用 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 请求。在环境资源中,为具有授权网络的环境指定配置参数。
如需为专用 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
创建环境后,master_authorized_networks_config
在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
替换为采用 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
构建
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
代码块
授权网络。
如需停用授权网络,请在以下位置设置 enabled
字段:
将 master_authorized_networks_config
代码块更改为 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
}
}
}