このページでは、Distributed Cloud ゾーンで Google Distributed Cloud VPN 接続リソースを作成して管理する方法について説明します。
この機能は、Distributed Cloud Rack でのみ使用できます。Distributed Cloud Servers は VPN 接続リソースをサポートしていません。
Distributed Cloud VPN 接続の詳細については、Distributed Cloud の仕組みをご覧ください。
次の点にご注意ください。
Distributed Cloud VPN 接続で必要なトラフィックを許可するようにネットワークを構成する必要があります。
Distributed Cloud VPN 接続を作成すると、Distributed Cloud は必要な Cloud VPN ゲートウェイと Cloud Router リソースを作成します。Cloud VPN ゲートウェイの名前には
anthos-mccという接頭辞が付いています。Cloud Router の名前にはgdceという接頭辞が付いています。これらのリソースは変更しないでください。変更すると、Distributed Cloud VPN 接続が機能しなくなる可能性があります。これらのリソースを誤って変更した場合は、影響を受ける Distributed Cloud VPN 接続を削除して再作成する必要があります。Distributed Cloud は、Google Cloud プロジェクトとリージョンで最初の Distributed Cloud VPN 接続を作成するときに、リージョンごとにプロジェクトごとに 1 つの Cloud Router を作成します。 Google Cloud その Google Cloud プロジェクトとリージョンで後で作成されるすべての VPN 接続は、同じ Cloud Router リソースを再利用します。
Cloud Router リソースを削除できるのは、セカンダリ ネットワーク インターフェースがアタッチされていない場合のみです。Distributed Cloud は、Cloud Router に接続されている最後の VPN 接続を削除すると、Cloud Router を自動的に削除します。
分散 Cloud VPN 接続は IPv4 アドレスのみをサポートします。
Distributed Cloud クラスタごとに作成できる VPN 接続は 1 つのみです。
ローカル ネットワークで複数のネットワーク アドレス変換(NAT)ゲートウェイを使用する場合は、Distributed Cloud インストールで Virtual Private Cloud(VPC)ネットワークへのアウトバウンド トラフィックに単一の IP アドレスを使用するように構成する必要があります。
デフォルトでは、Distributed Cloud は単一ノードに単一の VPN クライアントを構成し、2 つの VPN トンネル( Google Cloud エンドの HA VPN とも呼ばれます)を使用して Google Cloud に接続します。
--high-availabilityフラグを使用すると、VPN 接続の可用性をさらに高めることができます。このフラグは、2 つの別々のノードに 2 つの VPN クライアントを構成して、合計 4 つの VPN トンネルを構成するように Distributed Cloud に指示します。VPN 接続の構成を変更する場合は、VPN 接続を削除して再作成する必要があります。
VPN 接続は、Google Cloud CLI または Distributed Cloud Edge Container API を使用して管理できます。
VPN 接続の作成
Distributed Cloud VPN 接続を作成するには、このセクションの手順を完了します。
このタスクを完了するには、 Google Cloud プロジェクトに対する Edge コンテナ管理者ロール(roles/edgecontainer.admin)が必要です。
gcloud
gcloud edge-cloud container vpn-connections create コマンドを使用します。
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--router=ROUTER_NAME \
--high-availability
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。CLUSTER_NAME: 対象とする Distributed Cloud クラスタの名前。VPC_NETWORK_NAME: この VPN 接続が参照するターゲット VPC ネットワークの名前。このネットワークは、Distributed Cloud インストールと同じ Google Cloud プロジェクトに存在する必要があります。NAT_GATEWAY_IP: ターゲット クラスタの NAT ゲートウェイ IP アドレス。NAT を使用していない場合は、このフラグを省略します。ROUTER_NAME(省略可): この VPN 接続に使用する既存の Cloud Router リソースを指定します。それ以外の場合、ターゲットのGoogle Cloud プロジェクトとリージョンに Cloud Router がまだ存在しない場合は、Distributed Cloud によって Cloud Router が自動的に作成されます。--high-availability(省略可): 2 つの別々のノードで実行される 2 つの別々の VPN クライアントを設定して、クラスタ側でこの VPN 接続を高可用性用に構成します。高可用性を無効にするには、このフラグを省略します。
API
projects.locations.vpnConnections.create メソッドに POST リクエストを送信します。
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID
"enableHighAvailability": HA_ENABLE,
"router": ROUTER_NAME,
}
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_ID: このノードプール リソースを識別する一意のプログラム ID。REQUEST_ID: このリクエストを識別する一意のプログラム ID。VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。NAT_GATEWAY: NAT ゲートウェイの IP アドレス。CLUSTER_PATH: ターゲット クラスタの完全な正規パス。VPC_NETWORK_ID: ターゲット VPC ネットワークの ID。HA_ENABLE: クラスタ側で高可用性用にこの VPN 接続を構成するかどうかを示します。TRUEに設定すると、2 つの別々のノードで実行される 2 つの別々の VPN クライアントが構成されます。ROUTER_NAME(省略可): この VPN 接続に使用する既存の Cloud Router リソースを指定します。それ以外の場合、ターゲットのGoogle Cloud プロジェクトとリージョンに Cloud Router がまだ存在しない場合は、Distributed Cloud によって Cloud Router が自動的に作成されます。
VPN 接続を一覧表示する
Distributed Cloud クラスタ用にプロビジョニングされた VPN 接続を一覧表示するには、このセクションの手順を行います。
このタスクを完了するには、 Google Cloud プロジェクトに対する Edge コンテナ閲覧者ロール(roles/edgecontainer.viewer)が必要です。
gcloud
gcloud edge-cloud container vpn-connections list コマンドを使用します。
gcloud edge-cloud container vpn-connections list \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。
API
projects.locations.vpnConnections.list メソッドに GET リクエストを送信します。
GET /v1/PROJECT_ID/locations/REGION/vpnConnections?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。FILTER: 返される結果を特定の値に制限する式。PAGE_SIZE: ページごとに返す結果の数SORT_BY: 返される結果の並べ替えの基準とするフィールド名のカンマ区切りリストデフォルトの並べ替え順は昇順です。降順で並べ替えるには、目的のフィールドに~という接頭辞を付けます。PAGE_TOKEN: レスポンスのnextPageTokenフィールドで、最後のリスト リクエストのレスポンスで受け取ったトークン。このトークンを送信して、結果のページを受け取ります。
VPN 接続に関する情報を取得する
Distributed Cloud VPN 接続に関する情報を取得するには、このセクションの手順を完了します。
このタスクを完了するには、 Google Cloud プロジェクトに対する Edge コンテナ閲覧者ロール(roles/edgecontainer.viewer)が必要です。
gcloud
gcloud edge-cloud container vpn-connections describe コマンドを使用します。
gcloud edge-cloud container vpn-connections describe VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。
API
projects.locations.vpnConnections.get メソッドに GET リクエストを送信します。
GET /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。
VPN 接続の削除
Distributed Cloud VPN 接続を削除するには、このセクションの手順を完了します。
Distributed Cloud が以前に Google Cloud プロジェクトで作成した Cloud Router リソースに関連付けられている最後の VPN 接続を削除する場合、VPN 接続を削除すると、関連付けられている Cloud Router リソースが自動的に削除されます。ただし、この状況で自動的に削除されるのは、Distributed Cloud によって自動的に作成された Cloud Router リソースのみです。Distributed Cloud は、--router フラグを使用して指定された既存の Cloud Router リソースを削除しません。
このタスクを完了するには、 Google Cloud プロジェクトに対する Edge コンテナ管理者ロール(roles/edgecontainer.admin)が必要です。
gcloud
gcloud edge-cloud container vpn-connections delete コマンドを使用します。
gcloud edge-cloud container vpn-connections delete VPN_CONNECTION_NAME \
--location=REGION \
--project=PROJECT_ID
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。
API
projects.locations.vpnConnections.delete メソッドに DELETE リクエストを送信します。
DELETE /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME?requestId=REQUEST_ID
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。REQUEST_ID: このリクエストを識別する一意のプログラム ID。
プロジェクト間の VPN 接続を管理する
Distributed Cloud では、Distributed Cloud クラスタを含む Google Cloud プロジェクトとは異なる Google Cloud プロジェクトの VPC ネットワークへの VPN 接続を作成することもできます。
前提条件
プロジェクト間の VPN 接続を作成するには、このセクションの前提条件を満たす必要があります。
呼び出し元アカウントの権限
ターゲット VPC プロジェクトの呼び出し元ユーザー アカウントには、次の権限が必要です。これらの権限は、プロジェクト IAM 管理者ロール(roles/resourcemanager.projectIamAdmin)にカプセル化されています。
resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
IAM のロールと権限の設定方法については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
Distributed Cloud サービス アカウントの権限
Distributed Cloud が、プロジェクト間の VPN 接続を有効にするターゲット VPC プロジェクトに Cloud Router リソースと Cloud VPN リソースを作成できるようにするには、Distributed Cloud クラスタ内の Distributed Cloud サービス アカウントに Compute ネットワーク管理者ロール(roles/compute.networkAdmin)を付与する必要があります。
Compute ネットワーク管理者のロールを付与する手順は次のとおりです。
gcloud
gcloud projects add-iam-policy-binding コマンドを使用します。
gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUM@gcp-sa-edgecontainer.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin" \
--project=VPC_PROJECT_ID
次のように置き換えます。
VPC_PROJECT_ID: ターゲット VPC プロジェクトの ID。PROJECT_NUM: ターゲットの Distributed Cloud Google Cloud プロジェクトの番号。
プロジェクト間の VPN 接続を作成する
別のGoogle Cloud プロジェクトの VPC ネットワークへの VPN 接続を作成するには、このセクションの手順を完了します。
gcloud
gcloud edge-cloud container vpn-connections create コマンドを使用します。
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-project=VPC_PROJECT_ID \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--high-availability
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。PROJECT_ID: ターゲットの Distributed Cloud クラスタ Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。CLUSTER_NAME: 対象とする Distributed Cloud クラスタの名前。VPC_PROJECT_ID: ターゲット VPC ネットワークを含むターゲットGoogle Cloud プロジェクトの ID。VPC_NETWORK_NAME: この VPN 接続が参照するターゲット VPC ネットワークの名前。NAT_GATEWAY_IP: ターゲット クラスタの NAT ゲートウェイ IP アドレス。NAT を使用していない場合は、このフラグを省略します。--high-availability(省略可): 2 つの個別のノードで実行される 2 つの個別の VPN クライアントを設定して、クラスタ側の高可用性用にこの VPN 接続を構成します。高可用性を無効にするには、このフラグを省略します。
API
projects.locations.vpnConnections.create メソッドに POST リクエストを送信します。
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID,
"vpcProject": VPC_PROJECT_ID,
"vpcServiceAccount": var>VPC_PROJECT_SERVICE_ACCOUNT,
"enableHighAvailability": HA_ENABLE,
}
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲットの Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_ID: このノードプール リソースを識別する一意のプログラム ID。REQUEST_ID: このリクエストを識別する一意のプログラム ID。VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。NAT_GATEWAY: NAT ゲートウェイの IP アドレス。CLUSTER_PATH: ターゲット クラスタの完全な正規パス。VPC_NETWORK_ID: ターゲット VPC ネットワークの ID。VPC_PROJECT_ID: ターゲット VPC ネットワークを含むターゲットGoogle Cloud プロジェクトの ID。HA_ENABLE: クラスタ側で高可用性用にこの VPN 接続を構成するかどうかを示します。TRUEに設定すると、2 つの別々のノードで実行される 2 つの別々の VPN クライアントが構成されます。
プロジェクト間の VPN 接続の Cloud Audit Logs
クロス プロジェクト VPN 接続を作成すると、Cloud Audit Logs ログは次のように書き込まれます。
- Distributed Cloud クラスタの監査ログには、クロス プロジェクト VPN 接続の長時間実行オペレーション、認証、認可に関する情報が記録されます。この情報には、作成オペレーションの呼び出し元と、呼び出し元に付与または拒否された権限が含まれます。
- ターゲット VPC プロジェクトの監査ログには、Cloud Router や Cloud VPN リソースなど、プロジェクト間の VPN 接続を有効にする Google Cloud リソースに関する情報が記録されます。これらのリソースにアクセスする呼び出し元は、Edge Container サービス エージェントのロール(
roles/edgecontainer.serviceAgent)を付与した Distributed Cloud サービス アカウントです。
VPN 接続の制限事項
特定の VPN 接続を作成したクラスタのノードプールを変更する場合は、その VPN 接続を削除して再作成する必要があります。そうしないと、次のような予期しない動作が発生する可能性があります。
- VPN 接続が断続的に切断される
- Distributed Cloud ゾーンの他のクラスタで VPN 接続を作成できない
プロジェクト間の VPN 接続の制限事項
また、プロジェクト間の VPN 接続には次の制限があります。
- クロス プロジェクト VPN 接続リソースは、Distributed Cloud クラスタにのみ存在します。
- ターゲット VPC プロジェクトで Distributed Cloud サービス アカウントの権限を変更すると、Distributed Cloud クラスタからクロス プロジェクト VPN 接続を削除できなくなります。
次のステップ
- Google Distributed Cloud にワークロードをデプロイする
- ゾーンを管理する
- クラスタを作成して管理する
- ノードプールを作成して管理する
- 仮想マシンを管理する
- GPU ワークロードを管理する