プライベート ネットワーク アクセスを構成する

このページでは、 プライベート ネットワーク アクセスを設定し、 ネットワーク内でトラフィックをルーティングする方法について説明します。 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.com

    VPC Service Controls の詳細を確認する。

VPC ネットワークのプロジェクトを構成する

VPC ネットワークのプロジェクトを構成する手順は次のとおりです。

  1. VPC ネットワークを作成する か、使用するリージョンに IPv4 専用またはデュアルスタック サブネットがある既存の VPC ネットワークを選択します。 レガシー ネットワークはサポートされていません。

  2. 必要な上り(内向き)許可ファイアウォール ルールを作成します。

    • ターゲットが VM または内部パススルー ネットワーク ロードバランサの場合、ファイアウォール ルールは、35.199.192.0/19 範囲からターゲット VM インスタンスで実行されているソフトウェアが使用するポートへの TCP トラフィックを許可する必要があります。

    • ターゲットが内部アプリケーション ロードバランサまたは内部プロキシ ネットワーク ロードバランサの場合、ファイアウォール ルールは、35.199.192.0/19 範囲からロードバランサが使用する IP アドレスとポートへの TCP トラフィックを許可する必要があります。

    35.199.192.0/19 範囲の詳細については、 Cloud DNS と Service Directory のパスをご覧ください。

  3. エンドポイントを呼び出す プロダクトのサービス エージェントに、Identity and Access Management(IAM)Private Service Connect の承認済みサービス ロール(roles/servicedirectory.pscAuthorizedService)を付与します。 Google Cloud

    ロールと権限の詳細については、 Service Directory の権限とロールをご覧ください。

Service Directory プロジェクトを構成する

Service Directory プロジェクトを構成する手順は次のとおりです。

  1. VPC ネットワークに VM または内部ロードバランサを作成します。

  2. エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに、IAM Service Directory 閲覧者ロール (roles/servicedirectory.viewer)を付与します。

  3. Service Directory の名前空間とサービスを作成します。 次に、次のセクションの手順に沿って、このサービスのエンドポイントを作成します。

プライベート ネットワーク アクセスを使用してエンドポイントを作成する

プライベート ネットワーク アクセスが構成されたエンドポイントを作成する手順は次のとおりです。

コンソール

  1. コンソールで、[Service Directory の名前空間] ページに移動します。 Google Cloud Service Directory の名前空間に移動
  2. 名前空間をクリックします。
  3. サービスをクリックします。
  4. [エンドポイントを追加] をクリックします。
  5. [**エンドポイント名**] にエンドポイントの名前を入力します。
  6. [IP アドレス] に、IPv4 アドレス(192.0.2.0 など)を入力します。
  7. [**ポート**] に、ポート番号(44380 など)を入力します。
  8. プライベート ネットワーク アクセスを有効にするには、[関連付けられた VPC ネットワーク] で必要な オプション:
      を選択します。
    • 利用可能なネットワークのリストから選択するには、[リストから選択] をクリックして、ネットワークを選択します。
    • プロジェクトとネットワークを指定するには、 [プロジェクト名とネットワーク名で指定する] をクリックして、 プロジェクト番号とネットワーク名を入力します。
  9. [作成] をクリックします。

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: プロジェクトの ID
  • REGION: 名前空間を含む リージョン Google Cloud
  • NAMESPACE_NAME: 名前空間に付けた名前(my-namespace など)
  • SERVICE_ID: サービスの ID
  • IP_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 プロダクト プロジェクトを構成する手順は次のとおりです。

  1. プロダクト API を有効にします。 Google Cloud

  2. 作成した 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 ネットワークに存在します。

プロジェクトの Google サービス構成がネットワーク プロジェクト VM に下り(外向き)することを許可します。
図 1.プロジェクトの Google サービス構成が VM に 下り(外向き)できるようにする(クリックして拡大)。

ネットワークとターゲット ネットワークを設定する

  1. プロジェクトを作成します。たとえば、myproject などです。
  2. VPC ネットワークvpc-1など)を作成します。

    VPC ネットワークの作成時に、[**サブネット作成モード**] で [**自動**] を選択します。

  3. ファイアウォール ルールを作成します 。たとえば、firewall-1などです。

    ファイアウォール ルールの作成時に、次の値を入力または選択します。

    • [ネットワーク] で vpc-1 を選択します。
    • [送信元 IPv4 範囲] に 35.199.192.0/19 と入力します。
    • [プロトコルとポート] で [TCP] を選択し、「443」または「80」と入力します。
  4. us-central1 リージョンに、VMvm-1 など)を作成します。

    VM の作成時に、次の値を入力または選択します。

    • [ネットワーキング > ネットワーク インターフェース] で vpc-1 を選択します。
    • [**ファイアウォール**] で [**HTTP トラフィックを許可する**] を選択します。

    HTTPS を使用する場合は、[HTTPS トラフィックを許可する] を選択します。また、公開鍵基盤(PKI)Transport Layer Security(TLS)証明書をインストールしていることを確認します。

  5. us-central1 リージョンに、namespace-1 などの名前空間を作成します。

  6. 名前空間に、sd-1 などの Service Directory サービスを登録します。

  7. sd-1 にエンドポイントを作成します。エンドポイント アドレスには、ポート 443vm-1 の内部 IP アドレスを使用します。詳細については、プライベート ネットワーク アクセスを使用してエンドポイントを 作成する をご覧ください

  8. エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに次の IAM ロールを付与します。

    • Service Directory 閲覧者ロール(roles/servicedirectory.viewer
    • Private Service Connect の承認済みサービス ロール(roles/servicedirectory.pscAuthorizedService
  9. 省略可: VM を追加する場合は、別の VM(vm-2 など)を設定し、そのエンドポイント(endpoint-2 など)を追加します。

プロダクトを設定する Google Cloud

  1. 「 Cloud Scheduler、毎分呼び出す」などの Google Cloud プロダクト構成を構成します。
  2. HTTP リクエストを設定します。
  3. リクエストがプライベート ネットワーキング(sd-1 など)を経由するように指定します。
  4. 省略可: 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 の境界が適用されたプライベート ネットワーク アクセスを使用してトラフィックを送信する方法を示しています。

VPC Service Controls の境界が適用されたプライベート ネットワーク アクセスを使用してトラフィックを送信する。
図 2.VPC Service Controls の境界が適用されたプライベート ネットワーク アクセスを使用してトラフィックを送信する(クリックして拡大)。

ネットワーク プロジェクトを構成する

  1. プロジェクトを作成します。例: my-vpc-project
  2. VPC ネットワークvpc-1など)を作成します。

    VPC ネットワークの作成時に、[**サブネット作成モード**] で [**自動**] を選択します。

  3. ファイアウォール ルールを作成します 。たとえば、firewall-1などです。

    ルールの作成時に、次の値を入力または選択します。

    • [ネットワーク] で vpc-1 を選択します。
    • [送信元 IPv4 範囲] に 35.199.192.0/19 と入力します。
    • [プロトコルとポート] で [TCP] を選択し、「443」または「80」と入力します。
  4. us-central1 リージョンに、VMvm-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 プロジェクトを構成する

  1. プロジェクトを作成します。例:my-sd-project

  2. VPC ネットワーク プロジェクトと Service Directory プロジェクトが異なるプロジェクトであるため、追加の IAM 権限が必要です。

    ネットワーク プロジェクトから、Service Directory エンドポイントを作成する IAM プリンシパルに Service Directory ネットワーク アタッチ担当者ロール(roles/servicedirectory.networkAttacher)を付与します。

  3. VPC ネットワーク内の VM を指す Service Directory エンドポイントを作成します。

    1. us-central1 リージョンに、namespace-1 などの名前空間を作成します。
    2. 名前空間に、sd-1 などの Service Directory サービスを登録します。
    3. sd-1 にエンドポイントを作成します。エンドポイント アドレスには、ポート 443vm-1 の内部 IP アドレスを使用します。詳細については、プライベート ネットワーク アクセスを使用してエンドポイントを 作成する をご覧ください
  4. エンドポイントを呼び出す Google Cloud プロダクトのサービス エージェントに次の IAM ロールを付与します。

    • Service Directory プロジェクトの Service Directory 閲覧者ロール(roles/servicedirectory.viewer
    • ネットワーク プロジェクトの Private Service Connect の承認済みサービス ロール(roles/servicedirectory.pscAuthorizedService

VPC Service Controls を使用している場合、VPC Service Controls の境界により、 Service Directory は サービス プロジェクトと Google Cloud Service Directory プロジェクトの両方に接続できます。

サービス プロジェクトを構成する Google Cloud

  1. 使用している Google Cloud サービスの API を有効にします。
  2. サービス 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 を使用した プライベート ネットワーク アクセスをご覧ください

次のステップ