サービスのプライベート アクセス オプション

Google では、いくつかのプライベート アクセス オプションを提供しています。これらのオプションにより、内部(RFC 1918)IP アドレスを持つ VM インスタンスが特定の API やサービスにアクセスできるようになります。アクセスする必要がある API やサービスをサポートするオプションを選択してください。

次の表に、各オプションの概要を示します。これらのオプションを 1 つまたはすべて構成できます。各オプションの動作はお互いに独立しています。

オプション インスタンス 接続 サポート対象のサービス 用途
限定公開の Google アクセス
GCP VM インスタンスは内部 IP アドレスのみ必要とし、外部 IP アドレスを持つことはできません。 VPC ネットワークのデフォルトのインターネット ゲートウェイ経由で Google API とサービスのパブリック IP アドレスに接続します。 ほとんどの Google API とサービスをサポート このオプションを使用すると、GCP リソースに外部 IP アドレスを設定しなくても、Google API とサービスに接続できます。
オンプレミス ホスト用の限定公開の Google アクセス
オンプレミス ホストには内部 IP アドレスが必要です。ホストが外部 IP アドレスを持つことは可能です。 制限付き IP アドレス範囲を使用し、VPN トンネルまたは相互接続を介して、Google API とサービスのパブリック IP アドレスに接続します。 制限付き Google IP アドレス範囲をサポートする Google サービス このオプションを使用すると、VPC ネットワーク経由で Google API とサービスに接続できます。この方法では、オンプレミス ホストで外部 IP アドレスを使用する必要はありません。
プライベート サービス アクセス
GCP VM インスタンスには内部 IP アドレスが必要です。インスタンスが外部 IP アドレスを持つことは可能です。 VPC ネットワーク ピアリング接続を介して、Google またはサードパーティが管理する VPC ネットワークに接続します。 Google またはサードパーティの一部のサービスをサポート このオプションを使用すると、外部 IP アドレスを GCP、Google、またはサードパーティのリソースに割り当てなくても、特定の Google サービスとサードパーティ サービスに接続できます。
Serverless VPC Access
GCP VM インスタンスには内部 IP アドレスが必要です。インスタンスが外部 IP アドレスを持つことは可能です。 内部 VPC 接続を介して、サーバーレスの Google サービスから直接接続します。 App Engine スタンダード環境と Cloud Functions このオプションを使用すると、内部 IP アドレスを使用して App Engine スタンダード環境と Cloud Functions から VPC ネットワーク内のリソースに直接接続できます。

限定公開の Google アクセス

内部 IP アドレスしか持たない VM インスタンス(外部 IP アドレスなし)は、限定公開の Google アクセスを使用して、Google API とサービスの外部 IP アドレスにアクセスできます。限定公開の Google アクセスを無効にすると、それらの VM インスタンスは Google API とサービスにアクセスできなくなり、VPC ネットワーク内でのみトラフィックを送信できます。

限定公開の Google アクセスは外部 IP アドレスを持つインスタンスには影響しません。外部 IP アドレスを持つインスタンスは、インターネット アクセス要件に従ってインターネットにアクセスできます。Google API とサービスの外部 IP アドレスにリクエストを送信するための特別な構成は必要ありません。

サブネットごとに限定公開の Google アクセスを有効にします。これは VPC ネットワークのサブネットの設定です。限定公開の Google アクセスのサブネットを有効にして要件を表示するには、限定公開の Google アクセスの構成をご覧ください。

サポート対象のサービス

限定公開の Google アクセスでは、Cloud と Developer の API、およびほとんどの GCP サービスにアクセスできますが、以下のサービスは例外です。

  • App Engine Memcache
  • Cloud Filestore
  • Cloud Memorystore
  • Cloud SQL

プライベート サービス アクセスでは、これらの中のいくつかがサポートされる場合があります。

次の例の VPC ネットワークは、Google API とサービス用のパブリック IP アドレスへのルートを持ち、そのネクストホップがデフォルト インターネット ゲートウェイであるため、限定公開の Google アクセスのルーティング要件を満たしています。限定公開の Google アクセスは subnet-a では有効ですが、subnet-b では有効でありません。

限定公開の Google アクセスの実装(クリックで拡大)

次のリストで、上記の図の詳細について説明します。

  • VPC ネットワークのファイアウォール ルールでは、0.0.0.0/0(または少なくとも Google API とサービスのサーバー IP)への下りトラフィックが許可されています。
  • VM A1 は Google API とサービス(Cloud Storage を含む)にアクセスできます。これは、この VM 用のネットワーク インターフェースが subnet-a にあり、このサブネットで限定公開の Google アクセスが有効になっているためです。このインスタンスは内部 IP アドレスしか持っていないため、限定公開の Google アクセスが適用されます。
  • VM B1 は、Google API とサービスにアクセスできません。この VM は内部 IP アドレスしか持っていませんが、subnet-b では限定公開の Google アクセスが無効になっているためです。
  • VM A2VM B2 はそれぞれ外部 IP アドレスを持っているため、どちらも Cloud Storage を含む Google API とサービスにアクセスできます。限定公開の Google アクセスは、これらのインスタンスが Google API とサービスにアクセスできるかどうかに影響を与えません。これは、どちらも外部 IP アドレスを持っているためです。

オンプレミス ホスト用の限定公開の Google アクセス

オンプレミス ホストは、お客様のデータセンターから GCP への Cloud VPN 接続または Cloud Interconnect 接続を介して、Google API とサービスにアクセスできます。オンプレミス ホストには外部 IP アドレスは必要ありません。その代わりに、RFC 1918 の内部 IP アドレスを使用します。

オンプレミス ホスト用の限定公開の Google アクセスを有効にするには、オンプレミス ネットワークと VPC ネットワークで、DNS、ファイアウォール ルール、ルートを構成する必要があります。VPC ネットワーク内のサブネットに対して限定公開の Google アクセスを有効にする必要はありません。この作業は、GCP VM インスタンス用の限定公開の Google アクセスで行います。ただし、VPC ネットワーク内では、199.36.153.4/30 宛てのトラフィックを、デフォルト インターネット ゲートウェイにルーティングする必要があります。ネクストホップは「デフォルト インターネット ゲートウェイ」と呼ばれていますが、199.36.153.4/30 に送信されたトラフィックは、公共のインターネット上を行き来することなく、Google のネットワーク内に留まります。Google では 199.36.153.4/30 へのルートを外部に公開していないためです。

オンプレミス ホストの場合、Google API とサービスへのリクエストは、restricted.googleapis.com に送信する必要があります。これは、Google が一般公開する DNS A レコードによって提供される制限付き VIP(仮想 IP アドレス範囲)です。その範囲は 199.36.153.4/30 ですが、Google はこれらのルートを公開しません。したがって、Cloud Router 上でカスタムルートを追加し、宛先 199.36.153.4/30 を対象として VPC で適切なルートを指定する必要があります。

オンプレミス ホストからこの制限付き範囲にアクセスするには、VPN トンネルまたは相互接続を介してリクエストを送信する必要があります。この制限付き範囲を動的にアナウンスするには、Cloud Router を使用します。詳細については、オンプレミス ホスト用の限定公開の Google アクセスの構成をご覧ください。

サポート対象のサービス

オンプレミス ホスト用の限定公開の Google アクセスでサポートされるサービスは、通常の限定公開の Google アクセスでサポートされるサービスのサブセットになります。制限付き VIP をサポートする以下の Google API とサービスのみがサポートされます。

  • BigQuery
  • Cloud Bigtable
  • Cloud Dataflow
  • Cloud Dataproc
  • Cloud Data Loss Prevention
  • Cloud Deployment Manager
  • Cloud DNS
  • Cloud KMS
  • Cloud Pub/Sub
  • Cloud Spanner
  • Cloud Storage
  • Container Registry
  • Stackdriver logging
  • Stackdriver Error Reporting

次の例では、Cloud VPN トンネルを介して、オンプレミス ネットワークが VPC ネットワークに接続されています。オンプレミス ホストから Google API へのトラフィックは、トンネルを通って VPC ネットワークに到達します。VPC ネットワークに到達した後、トラフィックは、ネクストホップとしてデフォルト インターネット ゲートウェイを使用するルート経由で送信されます。このネクストホップにより、トラフィックは VPC ネットワークを離れて Google API およびサービス用の制限付き IP 範囲(199.36.153.4/30)に配信されます。

ハイブリッド クラウド用の限定公開の Google アクセスのユースケース(クリックして拡大)
  • オンプレミス DNS 構成では、*.googleapis.com リクエストは restricted.googleapis.com にマッピングされ、199.36.153.4/30 に解決されます。
  • Cloud Router は、VPN トンネルを通じて IP アドレス範囲 199.36.153.4/30 をアドバタイズします。Google API に送信されるトラフィックは、このトンネル経由で VPC ネットワークにルーティングされます。
  • VPC ネットワークには、宛先が 199.36.153.4/30 であるトラフィックを(ネクストホップである)デフォルト インターネット ゲートウェイに振り向けるルートが含まれています。これにより、Google は適切な API またはサービスにトラフィックをルーティングします。
  • Cloud DNS を使用してネットワーク内にプライベート DNS ゾーンを構成している場合、Google API へのすべてのリクエストは制限付き範囲にマッピングされます。この構成では、サポートされている API にのみアクセス可能であるため、他のサービスにはアクセスできなくなる可能性があります。Cloud DNS は部分的なオーバーライドをサポートしていません。部分的なオーバーライドが必要な場合は BIND を使用してください。

プライベート サービス アクセス

Google とサードパーティ(サービス プロデューサーとも呼ばれます)は、VPC ネットワークでホストされている内部 IP アドレスでサービスを提供できます。プライベート サービス アクセスを使用すると、これらの内部 IP アドレスにアクセスできます。これは、VPC ネットワーク内の VM インスタンスに、外部 IP アドレスではなく内部 IP アドレスを使用させる場合に便利です。プライベート サービス アクセスの使用方法の詳細については、プライベート サービス アクセスの構成をご覧ください。

プライベート サービス アクセスには、まず内部 IP アドレス範囲を割り当ててプライベート接続を作成する必要があります。割り当て範囲は、ローカル VPC ネットワークでは使用できない予約済みの CIDR ブロックです。これはサービス プロデューサー用に確保されていて、VPC ネットワークとサービス プロデューサーの VPC ネットワークの重複を防ぎます。プライベート接続を作成するときは、割り当てを指定する必要があります。

プライベート接続は、VPC ネットワークをサービス プロデューサーの VPC ネットワークにリンクします。この接続により、VPC ネットワーク内の VM インスタンスは内部 IP アドレスを使用して、内部 IP アドレスを持つサービス リソースにアクセスできます。インスタンスに外部 IP アドレスを指定することもできますが、外部 IP アドレスは必須ではなく、プライベート サービス アクセスには使用されません。

1 つのサービス プロデューサーで複数のサービスを提供する場合でも、必要なプライベート接続は 1 つのみです。プライベート接続を作成するときは、Service Networking API を使用します。ただし GCP では、この接続は VPC ネットワークとサービス プロデューサーの VPC ネットワーク間の VPC ネットワーク ピアリング接続として実装されます。たとえば、VPC ネットワークではこの接続はピアリング接続として表示され、プライベート接続を削除するには、ピアリング接続を削除する必要があります。

プライベート サービス アクセスは、それをサポートするサービスでのみ使用できます。プライベート接続を作成する前に、サービス プロデューサーに確認してください。

サービス プロデューサー ネットワーク

プライベート接続のサービス プロデューサー側には VPC ネットワークがあり、そこではサービス リソースがプロビジョニングされています。サービス プロデューサーのネットワークはそれぞれのお客様専用に作成され、そこにはお客様のリソースのみが含まれます。

サービス プロデューサー ネットワーク内のリソースは、VPC ネットワーク内の他のリソースと似ています。たとえばこのリソースは、VPC ネットワーク内の他のリソースから内部 IP アドレスを介して到達可能です。VPC ネットワークにファイアウォール ルールを作成して、サービス プロデューサーのネットワークへのアクセスを制御することもできます。

サービス プロデューサー側の詳細については、Service Infrastructure のドキュメントのプライベート サービス アクセスの有効化をご覧ください。このドキュメントは参考情報であり、プライベート サービス アクセスを有効化または使用するために必須ではありません。

プライベート サービス アクセスとオンプレミス接続

ハイブリッド ネットワーキングのシナリオでは、Cloud VPN または Cloud Interconnect 接続を介して、オンプレミス ネットワークを VPC ネットワークに接続します。デフォルトでは、オンプレミス ホストはプライベート サービス アクセスを使用してサービス プロデューサーのネットワークに到達することはできません。

VPC ネットワークでは、トラフィックをオンプレミス ネットワークに正しく転送するためのカスタム静的ルートまたは動的ルートがあります。ただし、サービス プロデューサーのネットワークにはこれらと同じルートが含まれていません。プライベート接続を作成した後、VPC ネットワークとサービス プロデューサー ネットワークがサブネット ルートのみを交換します。ただし、VPC ネットワークがカスタムルートをサービス プロバイダのネットワークにエクスポートするように、接続を変更できます。

カスタムルートをエクスポートすると、サービス プロデューサーのネットワークがそれらをインポートし、オンプレミス ネットワークにトラフィックを正しくルーティングできるようになります。

カスタムルートをエクスポートするには、プライベート接続を作成してから、基になる VPC ピアリング構成を変更してカスタムルートをエクスポートする必要があります。プライベート接続の作成については、プライベート サービス アクセスの構成をご覧ください。カスタムルートのエクスポートについては、ピアリング接続の更新をご覧ください。

サポート対象のサービス

プライベート サービス アクセスをサポートする Google サービスは次のとおりです。

次の例では、お客様の VPC ネットワークが Google サービスの 10.240.0.0/16 アドレス範囲を割り当て、割り当て範囲を使用するプライベート接続を確立しました。各 Google サービスは、Cloud SQL インスタンスなどの新しいリソースを所定のリージョンにプロビジョニングするために、割り当てられたブロックからサブネットを作成します。

プライベート サービス アクセス(クリックして拡大)
  • プライベート接続には 10.240.0.0/16 割り当て範囲が割り当てられます。Google サービスは、新しいリソースがプロビジョニングされるサブネットをこの割り当てから作成できます。
  • プライベート接続の Google サービス側では、Google がお客様のプロジェクトを作成します。このプロジェクトは分離されていて他のお客様と共有されることはなく、費用はお客様がプロビジョニングしたリソースに対してのみ発生します。
  • 各 Google サービスは、リソースをプロビジョニングするためのサブネットを作成します。サブネットの IP アドレス範囲は通常、/24 CIDR ブロックです。これはサービスによって選択されるもので、割り当てられた IP アドレス範囲から取得されます。サービス プロデューサーのサブネットは変更できません。サービスは、そのサービスで以前に作成された既存のリージョン サブネットに新しいリソースをプロビジョニングします。サブネットがいっぱいの場合、サービスは同じリージョンに新しいサブネットを作成します。
  • お客様のネットワーク内の VM インスタンスは、サービスがサポートしていれば、あらゆるリージョンのサービス リソースにアクセスできます。サービスによっては、リージョン間通信をサポートしていないものもあります。たとえば、VM インスタンスは、同じリージョンにある Cloud SQL インスタンスとのみ通信できます。詳細については、関連するサービスのドキュメントをご覧ください。
  • VM インスタンスが異なるリージョンのリソースと通信する場合、リージョン間トラフィックの下りのコストが引き続き適用されます。
  • Cloud SQL インスタンスには、IP アドレス 10.240.0.2 が割り当てられます。お客様の VPC ネットワークでは、宛先が 10.240.0.2 のリクエストは、プライベート接続を経由してサービス プロデューサーのネットワークへとルーティングされます。サービス ネットワークに到達すると、サービス ネットワークにはリクエストを正しいリソースに送るルートが含まれます。
  • VPC ネットワーク間のトラフィックは、公共のインターネットを経由せず、Google のネットワーク内を内部的に転送されます。

Serverless VPC Access

Serverless VPC Access を使用すると、App Engine スタンダード環境と Cloud Functions から VPC ネットワークに直接接続できます。この接続により、App Engine スタンダード環境アプリと Cloud Functions が、内部 IP アドレスを介して VPC ネットワーク内のリソースにアクセスできるようになります。

Serverless VPC Access では、GCP プロジェクトにコネクタを作成して VPC ネットワークに接続します。次に、このコネクタを内部ネットワーク トラフィックに使用するように、サーバーレス サービス(App Engine アプリや Cloud Functions など)を構成します。

Serverless VPC Access では、アプリまたは機能のみが、VPC ネットワーク内のリソースにリクエストを送信し、それらのリクエストに対するレスポンスを受信できます。VM がアプリまたは機能へのリクエストを開始する反対方向の通信では、アプリまたは機能のパブリック アドレスを使用する必要があります。詳細については、限定公開の Google アクセスをご覧ください。

Serverless VPC Access は、レガシー ネットワークまたは共有 VPC ネットワークをサポートしていません。詳細については、Serverless VPC Access の構成をご覧ください。

サポート対象のサービス

Serverless VPC Access コネクタをサポートする Google サービスは次のとおりです。

  • App Engine スタンダード環境
    • PHP 5.5 と Go 1.9 を除くすべてのランタイム
  • Cloud Functions

次の例では、App Engine スタンダード環境アプリと Cloud Functions は、Serverless VPC Access コネクタを使用して VPC ネットワークの内部リソースにリクエストを送信します。

Serverless VPC Access の例(クリックすると拡大します)
Serverless VPC Access の例(クリックすると拡大します)
  • Serverless VPC Access コネクタは、App Engine アプリおよび Cloud Functions と同じプロジェクトおよびリージョンにあります。
  • コネクタは、宛先リソースを含む VPC ネットワークに接続されています。VPC ネットワーク ピアリングを使用している場合、コネクタは他の VPC ネットワークおよび GCP プロジェクトのリソースにアクセスできます。
  • コネクタには、IP 範囲 10.8.0.0/28 が割り当てられています。コネクタから宛先に送信されたリクエストには、この範囲の送信元 IP アドレスがあります。
  • App Engine アプリと Cloud Functions は、それらの内部 IP アドレス、10.0.0.410.1.0.2 にリクエストを送信することによって宛先リソースに到達します。宛先リソースはどのリージョンに存在しても構いません。 下り料金は、コネクタから別のリージョンのリソースに送信されたトラフィックに適用されます。
  • App Engine および Cloud Functions から内部(プライベート)IP アドレスに送信されたリクエストは、Serverless VPC Access コネクタを経由して宛先リソースに内部的に転送されます。外部(パブリック)IP アドレスに送信されたリクエストは、公共のインターネットを経由して転送されます。

次のステップ