Cloud Composer 1 | Cloud Composer 2
このページでは、環境に承認済みネットワークを構成する方法について説明します。
Cloud Composer の承認済みネットワークについて
承認済みネットワークでは、HTTPS を使用して環境のクラスタ コントロール プレーンにアクセスできる CIDR 範囲を指定できます。
たとえば、Cloud Composer 2 では、プライベート IP 環境で環境のクラスタに対して kubectl
コマンドを実行するには、環境のクラスタへのアクセス権が必要です。このリクエストの送信元となるネットワークは、環境クラスタのコントロール プレーンへのアクセスが承認されている必要があります。
プライベート IP 環境とパブリック 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.8.1-airflow-2.7.3 \
--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.8.1-airflow-2.7.3 \
--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
は、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
}
}
}