サービス プロデューサーは、サービス ユーザーがプロビジョニングするリソースにプライベート IP アドレス(RFC 1918)とパブリック IP アドレスのどちらを設定するかを選べるようにすることができます。プライベート IP アドレスの使用を選択したサービス ユーザーは、プライベート サービス アクセスを使用する必要があります。ただし、サービス ユーザーがプライベート サービス アクセスを使用できるのは、マネージド サービスによってそのオプションが提供されている場合だけです。プライベート接続を提供するサービス プロデューサーは、1 回限りのオンボーディング プロセスを完了する必要があります。
オンボーディング プロセスでは、Service Networking API とテナンシー ユニットを使用する必要があります。順を追った詳しい手順については、Google 担当者にお問い合わせください。
概要
以下のセクションでは、マネージド サービスでプライベート サービス アクセスを有効にするために必要な要素と一般的なネットワーク トポロジについて説明します。
テナンシー ユニット
サービス ユーザーがマネージド サービスを有効にすると、サービス プロデューサーの GCP 組織とサービス ユーザーのプロジェクトとの関係を確立するためにテナンシー ユニットが作成されます。テナンシー ユニットは、リソースや請求コストを個々のサービス ユーザーの間で分離します。
テナンシー ユニットは、サービス ユーザーごとに 2 つ作成します。1 つはマネージド サービス用で、もう 1 つはプライベート アクセス管理サービス用です。マネージド サービスは、サービス プロデューサーがサービス ユーザーに提供する外部サービスです。プライベート アクセス管理サービスは、サービス ユーザーの VPC ネットワークとのプライベート接続を管理します。これらのテナンシー ユニットは、マネージド サービスが存在するのと同じ Google Cloud 組織に属する必要があります。
サービス ネットワーキング
サービス ネットワーキングは、サービス プロデューサーとサービス ユーザー間の(VPC ネットワーク ピアリングを使用した)プライベート接続のセットアップを自動化します。サービス ネットワーキングは、プライベート アクセス管理サービスを作成したのと同じプロジェクトで有効にし、そのプロジェクト内で使用します。これは、マネージド サービスを含むプロジェクトとは異なるプロジェクトです。
サービス ユーザーがマネージド サービスとのプライベート接続を作成すると、サービス ネットワーキングによって共有 VPC ホスト プロジェクトと共有 VPC ネットワークが作成されます。このホスト プロジェクトとネットワークは、サービス プロデューサーの組織内のあらかじめ指定された Google Cloud フォルダに作成されます。このフォルダの名前はオンボーディング プロセスの一環として指定します。ホスト プロジェクトとネットワークはテナンシー ユニットに含まれているため、他のユーザーから分離されていて、その特定のサービス ユーザーのみが使用できます。
サービス ネットワーキングは、共有 VPC ネットワークを作成した後、その共有 VPC ネットワークとサービス ユーザーが指定した VPC ネットワークとの VPC ネットワーキング ピアリング接続を自動的に作成します。
サービス ユーザーは、プライベート接続を作成するときに割り当て IP アドレス範囲も指定する必要があります。この割り当てにより、サービス プロデューサーのみが使用できる IP アドレスが予約されます。たとえば、サービス ユーザーがリソースをプロビジョニングしたとき、サービス プロデューサーはサービス ネットワーキングを使用して共有 VPC ネットワークにサブネットを作成します。このサブネットの IP アドレス範囲は、サービス ユーザーが指定した割り当て範囲内から自動的に選択されます。これにより、共有 VPC ネットワークとサービス ユーザーの VPC ネットワーク間の競合を回避できます。
共有 VPC サービス プロジェクト
マネージド サービスは、サービス ユーザーのリソースを初めてプロビジョニングするとき、サービス ネットワーキング ホスト プロジェクトに接続されている共有 VPC サービス プロジェクト内にそのリソースをプロビジョニングします。この共有 VPC 関係により、サービス プロジェクト内のリソースは共有 VPC ネットワークのサブネットを使用できます。
上記のサービス プロジェクトは、テナンシー ユニット内の、オンボーディング プロセス中にあらかじめ指定されたフォルダに作成されます。このフォルダとテナンシー ユニットはマネージド サービスに関連付けられており、サービス ネットワーキングが使用するフォルダとテナンシー ユニットとは異なります。
ネットワーク トポロジ
次の例では、1 人のサービス ユーザーが単一のサービス プロデューサーへのプライベート接続を持っています。このサービス ユーザーは、2 つのリソースを異なるリージョンにプロビジョニングしています。各リソースは異なるリージョンにあるため、そのサブネットも異なります。
エンドポイント プロジェクトは 2 つあります。1 つはマネージド サービス用で、もう 1 つはプライベート アクセス管理サービス用です。これらは同じ Google Cloud 組織内に存在する必要があります。
Google Cloud 組織内に、エンドポイント サービスごとに 1 つずつ、計 2 つのフォルダがあります。プライベート アクセス管理サービスのフォルダには、プライベート接続用の共有 VPC ホスト プロジェクトが含まれています。マネージド サービスのフォルダには、サービス ユーザーのリソース用のサービス プロジェクトが含まれています。
- 各フォルダに含まれるサービス ユーザー関連プロジェクトは、テナンシー ユニット内にあります。両方のテナンシーユニットも
consumer-project-a
に関連付けられています。
- 各フォルダに含まれるサービス ユーザー関連プロジェクトは、テナンシー ユニット内にあります。両方のテナンシーユニットも
サービス ユーザーはプライベート接続(これは VPC ネットワーキング ピアリング接続でもあります)を確立する必要があります。その際、サブネット IP アドレスの取得元となるプライベート接続用の割り当て IP アドレス範囲を指定する必要があります。サービス ユーザーが実施する手順の詳細については、プライベート サービス アクセスの構成をご覧ください。
- サービス プロデューサーが複数のサービスを提供している場合でも、サービス ユーザーに必要なプライベート接続は 1 つだけです。サービス ユーザーとの間を行き来するトラフィックはすべて共有 VPC ホスト プロジェクトを通過します。
単一のサービス ユーザー プロジェクトで複数の VPC ネットワークをサービスにプライベート接続できます。そのためには、接続する VPC ネットワークごとに共有 VPC ホスト プロジェクトが必要です。ただし、これらすべてのプロジェクトを同じ
consumer-project-a
テナンシー ユニットに含めることができます。ホスト プロジェクトでは、新しいリソースへの接続を有効にするファイアウォール ルールとルートを構成する必要があります。他のサービスも同じ共有 VPC ネットワークを使用できるため、これらのルールによって他のサービスとの接続を許可または拒否できます。
オンボーディング プロセス
以下に、オンボーディング プロセスの概要のリストを示します。このプロセスは、サービス プロデューサーが、プライベート接続を提供するマネージド サービスごとに完了する必要があります。詳細については、Google 担当者にお問い合わせください。
ピアリング管理サービスを作成します。
これは、サービス プロデューサーが Service Management API と Endpoints API を使用して構築するマネージド サービスです。詳細については、Google 担当者にお問い合わせください。
次の構成情報を Google 担当者に提供します。
- サービス ユーザーがサービス プロデューサーに接続するときに割り当てなければならない最小の IP アドレス範囲。IPv4 接頭辞長として指定します。複数のサービスを提供する場合は、広い IP アドレス範囲(
/16
など)を割り当てるようユーザーに求めることができます。 - プライベート アクセス管理サービスが作成する共有 VPC ホスト プロジェクトの格納先であるフォルダの ID。フォルダ ID は Resource Manager で調べます。
- プライベート アクセス管理サービスが作成する共有 VPC ホスト プロジェクトが属している組織に関連付けられた請求先アカウント。
- ホスト プロジェクトのネットワーク ファイアウォール ルールを管理するプリンシパル(通常はサービス アカウント ID)。
- サービス ユーザーがサービス プロデューサーに接続するときに割り当てなければならない最小の IP アドレス範囲。IPv4 接頭辞長として指定します。複数のサービスを提供する場合は、広い IP アドレス範囲(
Compute Engine API を有効にします。
共有 VPC のホスト プロジェクトごとに
compute.googleapis.com
API を有効にします。これは、Service Usage API を使用するか、プロジェクト構成で設定することができます。リソースがプロビジョニングされた後、共有 VPC ネットワークのファイアウォール ルールをホスト プロジェクト内に構成します。VPC ネットワークにアクセスするには、オンボーディング プロセス中に指定した ID を使用する必要があります。他のサービスを提供する場合、それらのサービスでも同じ VPC ネットワークを使用できます。他のサービスへのトラフィックを意図せず許可または拒否するようなルールは作成しないでください。
サービス ユーザーに通知します。
プライベート接続を確立する必要があることをサービス ユーザーに通知します。詳細については、プライベート サービス アクセスの構成をご覧ください。サービス ユーザーは次の情報を提供する必要があります。
- プライベート接続を確立するプロジェクトとネットワークの名前。
- リソースをプロビジョニングする必要がある Cloud リージョン。
次のステップ
- Service Networking API を有効にするには、Service Networking API スタートガイドをご覧ください。
- サービス ネットワーキングのプライベート接続の制限については、割り当てと制限をご覧ください。