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 アドレスが環境のクラスタのコントロール プレーンにアクセスできるように承認済みネットワークを構成できます。たとえば、特定の 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
は、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 リクエストを作成します。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
は、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
ブロックは、ご使用の環境の承認済みネットワークを制御します。
承認済みネットワークを無効にするには、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
}
}
}