このページでは、 プライベート ネットワーク アクセスを設定し、 ネットワーク内でトラフィックをルーティングする方法について説明します。 Google Cloud
プライベート ネットワーク アクセスを設定するには、次の 3 つのプロジェクトを構成します。
- ターゲット仮想マシン(VM)インスタンスまたはターゲット内部ロードバランサで使用される Virtual Private Cloud(VPC)ネットワークを含むプロジェクト。
- Service Directory サービス プロジェクトとして機能するプロジェクト。
- プライベート ネットワーク アクセスを呼び出す構成の プロダクトのプロジェクト。 Google Cloud プライベート ネットワーク アクセスを使用してエンドポイントを呼び出すことができる Google Cloud プロダクトの例としては、Dialogflow CX があります。
プロジェクトのアーティファクトは、同じプロジェクトに存在することも、異なるプロジェクトに存在することもできます。
始める前に
プライベート ネットワーク アクセスを構成する前に、次の手順を完了してください。
各プロジェクトで、 Google Cloud コンソールの [API とサービス] ページで、[API とサービスを有効にする] をクリックして、使用する API(Service Directory API など)を有効にします。
VPC ネットワークをオンプレミス ホストにリンクするには、 Cloud VPN トンネル またはCloud Interconnect 接続を作成します。
プロジェクトが、 Google Cloud VPC Service Controls 境界内にあることを確認します。
servicedirectory.googleapis.comVPC Service Controls の詳細を確認する。
VPC ネットワークのプロジェクトを構成する
VPC ネットワークのプロジェクトを構成する手順は次のとおりです。
VPC ネットワークを作成する か、使用するリージョンに IPv4 専用またはデュアルスタック サブネットがある既存の VPC ネットワークを選択します。 レガシー ネットワークはサポートされていません。
必要な上り(内向き)許可ファイアウォール ルールを作成します。
ターゲットが VM または内部パススルー ネットワーク ロードバランサの場合、ファイアウォール ルールは、
35.199.192.0/19範囲からターゲット VM インスタンスで実行されているソフトウェアが使用するポートへの TCP トラフィックを許可する必要があります。ターゲットが内部アプリケーション ロードバランサまたは内部プロキシ ネットワーク ロードバランサの場合、ファイアウォール ルールは、
35.199.192.0/19範囲からロードバランサが使用する IP アドレスとポートへの TCP トラフィックを許可する必要があります。
35.199.192.0/19範囲の詳細については、 Cloud DNS と Service Directory のパスをご覧ください。エンドポイントを呼び出す プロダクトのサービス エージェントに、Identity and Access Management(IAM)Private Service Connect の承認済みサービス ロール(
roles/servicedirectory.pscAuthorizedService)を付与します。 Google Cloudロールと権限の詳細については、 Service Directory の権限とロールをご覧ください。
Service Directory プロジェクトを構成する
Service Directory プロジェクトを構成する手順は次のとおりです。
エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに、IAM Service Directory 閲覧者ロール (
roles/servicedirectory.viewer)を付与します。Service Directory の名前空間とサービスを作成します。 次に、次のセクションの手順に沿って、このサービスのエンドポイントを作成します。
プライベート ネットワーク アクセスを使用してエンドポイントを作成する
プライベート ネットワーク アクセスが構成されたエンドポイントを作成する手順は次のとおりです。
コンソール
- コンソールで、[Service Directory の名前空間] ページに移動します。 Google Cloud Service Directory の名前空間に移動
- 名前空間をクリックします。
- サービスをクリックします。
- [エンドポイントを追加] をクリックします。
- [**エンドポイント名**] にエンドポイントの名前を入力します。
- [IP アドレス] に、IPv4 アドレス(
192.0.2.0など)を入力します。 - [**ポート**] に、ポート番号(
443、80など)を入力します。 - プライベート ネットワーク アクセスを有効にするには、[関連付けられた VPC ネットワーク] で必要な
オプション:
-
を選択します。
- 利用可能なネットワークのリストから選択するには、[リストから選択] をクリックして、ネットワークを選択します。
- プロジェクトとネットワークを指定するには、 [プロジェクト名とネットワーク名で指定する] をクリックして、 プロジェクト番号とネットワーク名を入力します。
- [作成] をクリックします。
gcloud
gcloud service-directory endpoints create
command を、指定した
プロジェクト ID とネットワーク パスとともに使用します。
gcloud service-directory endpoints create ENDPOINT_NAME \ --project=PROJECT_ID \ --location=REGION \ --namespace=NAMESPACE_NAME \ --service=SERVICE_ID \ --address=IP_ADDRESS \ --port=PORT_NUMBER \ --network=NETWORK_PATH
次のように置き換えます。
ENDPOINT_NAME: サービスで作成するエンドポイントの名前(my-endpointなど)PROJECT_ID: プロジェクトの IDREGION: 名前空間を含む リージョン Google CloudNAMESPACE_NAME: 名前空間に付けた名前(my-namespaceなど)SERVICE_ID: サービスの IDIP_ADDRESS: エンドポイントの IP アドレス(192.0.2.0など)PORT_NUMBER: エンドポイントが実行されているポート(通常は443または80)NETWORK_PATH: ネットワークの URL(projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAMEなど)
プロダクト プロジェクトを構成する Google Cloud
Google Cloud プロダクト プロジェクトを構成する手順は次のとおりです。
プロダクト API を有効にします。 Google Cloud
作成した Service Directory サービスを呼び出すように プロダクトを構成します。 Google Cloud 必要な手順は、特定の Google Cloud プロダクトによって異なります。
ユースケース
このセクションでは、プライベート ネットワーク アクセスを構成するユースケースの例を示します。
VPC ネットワーク、VM、Service Directory が同じプロジェクトにある場合に HTTP エンドポイントを呼び出す
このユースケースでは、自然言語処理用の Google Cloud プロダクト である Dialogflow CX を設定して、VM の HTTP エンドポイントを呼び出します。エンドポイントを呼び出す際に、トラフィックが公共のインターネットを経由しないようにします。
このユースケースでは、同じプロジェクトに次のアーティファクトを作成します。
- VPC ネットワーク
- VM
- Service Directory サービス
- Dialogflow CX
図 1 は、プロジェクトの Google サービス構成が VM に下り(外向き)できるようにする方法を示しています。VM はプロジェクトの VPC ネットワークに存在します。
ネットワークとターゲット ネットワークを設定する
- プロジェクトを作成します。たとえば、
myprojectなどです。 VPC ネットワーク(
vpc-1など)を作成します。VPC ネットワークの作成時に、[**サブネット作成モード**] で [**自動**] を選択します。
ファイアウォール ルールを作成します 。たとえば、
firewall-1などです。ファイアウォール ルールの作成時に、次の値を入力または選択します。
- [ネットワーク] で
vpc-1を選択します。 - [送信元 IPv4 範囲] に
35.199.192.0/19と入力します。 - [プロトコルとポート] で [TCP] を選択し、「
443」または「80」と入力します。
- [ネットワーク] で
us-central1リージョンに、VM(vm-1など)を作成します。VM の作成時に、次の値を入力または選択します。
- [ネットワーキング > ネットワーク インターフェース] で
vpc-1を選択します。 - [**ファイアウォール**] で [**HTTP トラフィックを許可する**] を選択します。
HTTPS を使用する場合は、[HTTPS トラフィックを許可する] を選択します。また、公開鍵基盤(PKI)Transport Layer Security(TLS)証明書をインストールしていることを確認します。
- [ネットワーキング > ネットワーク インターフェース] で
us-central1リージョンに、namespace-1などの名前空間を作成します。名前空間に、
sd-1などの Service Directory サービスを登録します。sd-1にエンドポイントを作成します。エンドポイント アドレスには、ポート443のvm-1の内部 IP アドレスを使用します。詳細については、プライベート ネットワーク アクセスを使用してエンドポイントを 作成する をご覧ください。エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに次の IAM ロールを付与します。
- Service Directory 閲覧者ロール(
roles/servicedirectory.viewer) - Private Service Connect の承認済みサービス ロール(
roles/servicedirectory.pscAuthorizedService)
- Service Directory 閲覧者ロール(
省略可: VM を追加する場合は、別の VM(
vm-2など)を設定し、そのエンドポイント(endpoint-2など)を追加します。
プロダクトを設定する Google Cloud
- 「 Cloud Scheduler、毎分呼び出す」などの Google Cloud プロダクト構成を構成します。
- HTTP リクエストを設定します。
- リクエストがプライベート ネットワーキング(
sd-1など)を経由するように指定します。 - 省略可: Certificate Authority Service の設定を構成します。
これで、 プロダクトは Google Cloud を使用して HTTP リクエストを呼び出すことができます。sd-1
共有 VPC ネットワーク、VM、Service Directory が異なるプロジェクトにある場合に HTTP エンドポイントを呼び出す
このユースケースでは、自然言語処理用のサービスである Dialogflow CX を設定して、VM の HTTP エンドポイントを呼び出します。 Google Cloudエンドポイントを呼び出す際に、トラフィックが公共のインターネットを経由しないようにします。
このユースケースでは、異なるプロジェクトに次のアーティファクトを作成します。
- 共有 VPC ネットワーク
- VM
- Service Directory サービス
- Dialogflow CX
プロジェクトを作成する前に、次の点に注意してください。
- API の呼び出しが VPC Service Controls の境界を尊重していることを確認します。
- サービス プロジェクトの構成で、VPC ネットワーク プロジェクトに存在する VM への下り(外向き)が許可されていることを確認します。 Google Cloud
- プロデューサー プロジェクトは、 Google Cloud サービス プロジェクトと同じでない可能性があります。
- 両方のプロジェクトの VPC Service Controls 境界が使用されていることを確認します。
- Service Directory プロジェクトとネットワーク プロジェクトを接続する必要はありませんが、両方とも同じ VPC Service Controls の一部である必要があります。
- ネットワークとサービスでは、ファイアウォールと IAM はデフォルトで無効になっています。
図 2 は、VPC Service Controls の境界が適用されたプライベート ネットワーク アクセスを使用してトラフィックを送信する方法を示しています。
ネットワーク プロジェクトを構成する
- プロジェクトを作成します。例:
my-vpc-project VPC ネットワーク(
vpc-1など)を作成します。VPC ネットワークの作成時に、[**サブネット作成モード**] で [**自動**] を選択します。
ファイアウォール ルールを作成します 。たとえば、
firewall-1などです。ルールの作成時に、次の値を入力または選択します。
- [ネットワーク] で
vpc-1を選択します。 - [送信元 IPv4 範囲] に
35.199.192.0/19と入力します。 - [プロトコルとポート] で [TCP] を選択し、「
443」または「80」と入力します。
- [ネットワーク] で
us-central1リージョンに、VM(vm-1など)を作成します。VM の作成時に、次の値を入力または選択します。
- [ネットワーキング > ネットワーク インターフェース] で
vpc-1を選択します。 - [**ファイアウォール**] で [**HTTP トラフィックを許可する**] を選択します。
HTTPS を使用する場合は、[HTTPS トラフィックを許可する] を選択します。また、公開鍵基盤(PKI)Transport Layer Security(TLS)証明書をインストールしていることを確認します。
- [ネットワーキング > ネットワーク インターフェース] で
VPC Service Controls を使用している場合、VPC Service Controls の境界により、 Service Directory は サービス プロジェクトと Google Cloud Service Directory プロジェクトの両方に接続できます。
Service Directory プロジェクトを構成する
プロジェクトを作成します。例:
my-sd-projectVPC ネットワーク プロジェクトと Service Directory プロジェクトが異なるプロジェクトであるため、追加の IAM 権限が必要です。
ネットワーク プロジェクトから、Service Directory エンドポイントを作成する IAM プリンシパルに Service Directory ネットワーク アタッチ担当者ロール(
roles/servicedirectory.networkAttacher)を付与します。VPC ネットワーク内の VM を指す Service Directory エンドポイントを作成します。
us-central1リージョンに、namespace-1などの名前空間を作成します。- 名前空間に、
sd-1などの Service Directory サービスを登録します。 sd-1にエンドポイントを作成します。エンドポイント アドレスには、ポート443のvm-1の内部 IP アドレスを使用します。詳細については、プライベート ネットワーク アクセスを使用してエンドポイントを 作成する をご覧ください。
エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに次の IAM ロールを付与します。
- Service Directory プロジェクトの Service Directory 閲覧者ロール(
roles/servicedirectory.viewer) - ネットワーク プロジェクトの Private Service Connect の承認済みサービス ロール(
roles/servicedirectory.pscAuthorizedService)
- Service Directory プロジェクトの Service Directory 閲覧者ロール(
VPC Service Controls を使用している場合、VPC Service Controls の境界により、 Service Directory は サービス プロジェクトと Google Cloud Service Directory プロジェクトの両方に接続できます。
サービス プロジェクトを構成する Google Cloud
- 使用している Google Cloud サービスの API を有効にします。
- サービス
PUSHを構成するには、Service Directory プロジェクトの Service Directory サービスを使用します。 Google Cloud
VPC Service Controls を使用している場合、VPC Service Controls の境界により、Service Directory はネットワーク プロジェクトと Service Directory プロジェクトの両方に接続できます。
Dialogflow で Service Directory プライベート ネットワーク アクセスを使用する
Dialogflow で Service Directory プライベート ネットワーク アクセス を使用する方法については、Service Directory を使用した プライベート ネットワーク アクセスをご覧ください。
次のステップ
- Service Directory の概要については、Service Directory 概要をご覧ください。
- Private Service Connect の詳細については、 Private Service Connect をご覧ください。
- Service Directory の使用時に発生する可能性のある一般的な問題の解決策については、 トラブルシューティングをご覧ください。