🕌

VPC ネットワーク徹底解説!Google Cloudの「Private 3兄弟」

に公開

はじめに

クラウドエースの梶田、小貫です。
セキュリティの観点からリソースをなるべく外部に晒すのは避けたいですよね。Google Cloud では、リソースに外部 IP アドレスを付与せずにサービス接続する「プライベート接続」という機能があります。
本記事では、その主要な方法である Private Google Access(PGA)、 Private Service Access(PSA)、 Private Service Connect(PSC)、通称「Private 3兄弟」を解説します。

TL;DR

# 名称 ユースケース
長男 Private Google Access (PGA) インターネットへの出口なしで Google API へ
次男 Private Service Access (PSA) VPC と Google マネージドサービスを内部接続
三男 Private Service Connect (PSC) サービス中心の柔軟なプライベート接続

長男:Private Google Access (PGA)

Private Google Access とは?


PGA とは、外部 IP アドレスを持たない VM が、Google API やサービス(Google Cloud Storage(GCS)、BigQuery、Cloud Logging など)に内部 IP アドレスを使用してアクセスできるようにする機能です。
通常、外部 IP アドレスを持たない VM はインターネットへのアクセスができません。また、Google API も通常はインターネットへ公開されているため、Google サービスにアクセスできません。
しかし、PGA を有効にすると、Google の内部ネットワークを経由して安全に Google サービスへのエンドポイントへアクセスするようになり、外部 IP を付与しないのでセキュリティの向上が期待できます。

仕組み:Google ネットワークへの限定アクセスの実現

ユーザーの VPC ネットワーク内の VM から、Google API へのアクセス時に、Google のネットワークインフラ内で特別な経路で通信します。
外部 IP アドレスを持たない VM が、インターネットを経由せずに Google のサービス群へ直接通信できる専用の道が用意されるようなイメージです。

主なユースケース

PGA を利用して、外部 IP を持たない VM インスタンスから GCS にアクセスします。

注意点

次男:Private Service Access (PSA)

Private Service Access とは?


VPC ネットワークから Google やサードパーティのマネージドサービスへ、安全かつプライベートに接続するための仕組みです。
通常、これらのマネージドサービスは Google が管理するネットワーク上にあり、ユーザーの VPC ネットワークとは別のネットワーク空間に存在しますが、PSA を利用すると、VPC ネットワーク内のプライベート IP アドレスを使用して、これらのサービスに直接アクセスできるようになります。

仕組み:VPC ネットワークピアリングの活用

ユーザーの VPC ネットワークと、サービス提供者(Google など)が管理している VPC ネットワークの間で、VPC ネットワークピアリング接続が確立されます。
これは、2つの VPC ネットワークを内部的に直接接続するようなイメージです。
これにより、ユーザーの VPC ネットワーク内のリソースは、予約した範囲内のプライベート IP アドレスを使用して、サービスに直接アクセスできるようになります。

主なユースケース

主なユースケースとして、PSA を利用した Cloud Run から Cloud SQL へのプライベート接続などがあります。

VPC の IP アドレス範囲を既存から割り当て、もしくは新規に払い出し、プライベート接続を作成することで PSA を構成できます。
詳しくはこちらをご参照ください。

注意点

三男:Private Service Connect (PSC)

Private Service Connect とは?


サービスのユーザーが、自身の VPC 内のプライベート IP アドレスを使用して、サービス提供者のサービス(Google API、サードパーティのサービス、または他の VPC でホストされているサービスなど)に接続できるようにする仕組みです。
この接続は、Google Cloud のネットワークバックボーン内で完結し、インターネットを経由しません。

仕組み:エンドポイントとサービス アタッチメント

PSC エンドポイント

PSC エンドポイントとは、Google API や公開サービスなどのマネージド サービスに対して、サービス利用者の VPC 内から「プライベート IP アドレスを使ってアクセスする」ための接続口です。サービス利用者の VPC 内に、特定のサービスへ接続するための専用の「入口用 IP アドレス」を作成します。
サービス利用者は、このエンドポイントの IP アドレスにアクセスするだけで、Google Cloud のネットワークが裏側でプロデューサーのサービス アタッチメントまで透過的に接続してくれます。

サービス アタッチメント

サービス提供者が、自身の VPC 内で稼働させているサービスを、他の VPC のサービス利用者に対して「プライベートに公開」するための設定です。「私のサービスにここから接続できますよ」という窓口を定義します。
サービス提供者がサービスへの「接続の受け口」を定義し、どのサービスを、誰に(どの程度オープンに)、どのように見せるか(NAT)を制御します。

主なユースケース

PSC を利用した VPC ネットワーク内の Compute Engine VM から GCS にエンドポイント経由でアクセスする構成などがあります。

PSC エンドポイントを作成し、GCS 用のサービス アタッチメントをターゲットとすることで、PSC を構成できます。
リクエストは PSC エンドポイントを経由し、Google Cloud の内部ネットワークを通じて、安全に GCS のサービスバックエンドに転送されます。

注意点(IP アドレスの重複回避、きめ細かな制御、対象サービスの確認など)

  • コスト: エンドポイント利用料とデータ転送料がかかり、他の方法より高価になる可能性があります。
  • 設定の複雑さ: PGA や PSA に比べて設定手順が多く、特にサービス提供者側の設定が複雑です。
  • 送信元 IP の隠蔽: デフォルトではクライアントの IP アドレスがサービス提供者側から見えなくなるため、アクセス制御やログ分析に影響する場合があります(Proxy Protocol で対応可能)。
    https://cloud.google.com/vpc/docs/private-service-connect?hl=ja

徹底比較!Private 3兄弟 - 用途に応じた最適な選択

3つの接続方式は揃って Private 接続という特性を持ちながら、その選択先はケースによって様々です。
接続方式によってそれぞれの設計等もかなり変わってくるので、どれを選択するかが重要になってきます。

比較表

特徴 PGA PSA PSC
主な接続対象 Google API / サービス(公開エンドポイント) Google 管理のサービス(Cloud SQL 等) Google API
/ 他 VPC サービス
/ SaaS
接続性 Google 内部ルーティング VPC ネットワークピアリング エンドポイント
& サービス アタッチメント
接続先 Google 公開 IP 専用プライベート IP(ピアリング経由) PSC エンドポイント IP
IP アドレス管理 不要 IP 範囲の予約が必要 エンドポイントの IP 確保(重複に注意)
VPC ピアリング 不要 必要 不要
ユースケース例 外部 IP なしの VM から GCS へのアクセス VM から Cloud SQL へのアクセス VM からサービス
/ Google API への限定アクセス

Google Cloud プライベート接続の最適な選択ガイド

まとめ

Google Cloud のプライベート接続「Private 3兄弟」(PGA, PSA, PSC)を解説しました。それぞれの特徴を理解し、接続先や要件に応じてプライベート接続を導入してみてください。

Discussion