G-genの杉村です。限定公開の Google アクセス(Private Google Access)機能を使うと、External IP アドエスを持っていない VM から、Google Cloud サービスの API にアクセスできるようになります。
- 限定公開の Google アクセスとは
- 仕様
- 利用するドメイン名
- private と restricted の違い
- 選択フローチャート
- 有効化の手順
- オンプレミスから利用する
- 限定公開の Google アクセス vs Private Service Connect
限定公開の Google アクセスとは
限定公開の Google アクセス(Private Google Access)とは、Google Cloud(旧称GCP)の API に対して、External IP(Public IP)アドレスを持たない VM や、オンプレミスのクライアントから、プライベートネットワークのみでアクセスできるようにする仕組みです。
Google Cloud の API は、通常はインターネット経由でアクセスされることを想定しています。しかし、インターネットを介さず、プライベートネットワークでのアクセスを可能にするのが当機能です。
- 参考 : 限定公開の Google アクセス
なお、類似の機能として Private Service Connect があります。どちらの機能を利用したら良いのかについては、Private Service Connect について解説した以下の記事で説明していますので、ご参照ください。
仕様

限定公開の Google アクセスの仕様と特徴は、以下のとおりです。
- サブネット単位で有効化する
- 有効化すると、External IP を持たない VM やオンプレミスのノードが Google の API へアクセスできるようになる
- Cloud Storage や BigQuery などの Google Cloud サービスに加え、Google Map、Google 広告なども対象
- 利用するドメイン名の選択肢として以下の3つがある。アクセス可能な API、必要なファイアウォール設定、DNS 設定などが異なる
- デフォルトのドメイン名を利用する
private.googleapis.comを利用するrestricted.googleapis.comを利用する
利用するドメイン名
前提知識
限定公開の Google アクセスを理解するには、前提として、Google Cloud サービスは API によって操作されるものである、ということの理解が必要です。 これは、Amazon Web Services(AWS)などの他のパブリッククラウドでも同様です。VM の起動・停止や、 BigQuery のテーブルへのクエリなどは、 Web API を通じて行われます。Web ブラウザで Google Cloud コンソール画面を操作する際や、gcloud コマンドラインを実行する際も、内部的には HTTPS プロトコルにより Web API へのリクエストが実行されています。

これについては、以下の記事で詳細に解説しています。
- 参考 : Google Cloudの根幹を成すGoogle Cloud APIsとは何か - G-gen Tech Blog
- 参考 : Cloud Audit Logsを解説。Google Cloudの証跡管理 - G-gen Tech Blog - API リクエストとは
例えば、Cloud Storage API のエンドポイントは https://storage.googleapis.com/ であり、BigQuery API のエンドポイントは https://bigquery.googleapis.com/ です。これらの API エンドポイントは、インターネットに公開されています。そのため、Compute Engine VM から Cloud Storage や BigQuery を利用する場合、本来は External IP アドレスを使って、インターネット経由でアクセスする必要があります。
デフォルトのドメイン名を利用する
限定公開の Google アクセスで利用するドメイン名として、以下の3種類から選択できます。
- デフォルトのドメイン名を利用する
private.googleapis.comを利用するrestricted.googleapis.comを利用する
選択肢 1. デフォルトのドメイン名を利用する は、もともとの Web API エンドポイントをそのまま利用する選択肢です。サブネットで限定公開の Google アクセスを有効化した場合、この状態になり、すぐに利用することができます。
この方法で VM から Google Cloud APIs へアクセスするには、VPC ルートで 0.0.0.0/0 をデフォルトインターネットゲートウェイに向ける必要があります。さらに、ファイアウォールの下り(Egress)ルールで 0.0.0.0/0 に対する HTTPS(443/TCP)を許可する必要があります。
上記のような設定をすると、トラフィックがインターネットに出ていくようにも思えますが、この設定により External IP アドレスを持っていない VM でも、Google Cloud APIs へのアクセスができるようになります。また、通信は Google のネットワーク内に閉じたものになります。
この設定では、VPC ネットワーク単位でデフォルトルートを 0.0.0.0/0 に向ける必要がありますし、ファイアウォール設定も空ける必要があります。設定ミス等により、意図せず VM が External IP アドレスを持ってしまった際などに、VM からはインターネットへのアウトバウンド通信が可能な環境になってしまいます。
これを防ぎたい場合は、他の選択肢が検討されます。
特殊なドメインを利用する
選択肢 2. private.googleapis.com を利用する と、3. restricted.googleapis.com を利用する は、これらのドメイン名を、デフォルトのドメイン名の CNAME として登録することでこれらを Web API エンドポイントとして利用し、アクセス先 IP アドレスを変える方法です。
これらの選択肢では、VPC ネットワークに、199.36.153.8/30 や 199.36.153.4/30 といったIP アドレス帯に対しての通信を許可するファイアウォールやルートを設定します。
理解しやすくするため、restricted.googleapis.com の場合を例にとって、設定の流れを以下に記載します。
- サブネットで限定公開の Google アクセスを有効化
199.36.153.4/30のネクストホップがデフォルトのインターネットゲートウェイへ向いていることを確認(デフォルトでは0.0.0.0/0のネクストホップがインターネットゲートウェイになっているため、条件を満たしている)- VPC ファイアウォールで、
199.36.153.4/30への 443/TCP の 下り(Egress)通信が拒否されていないことを確認(デフォルトでは許可) - Cloud DNS に
googleapis.comという限定公開 DNS ゾーンを作成 - 同ゾーンに以下を追加
- DNS名 : restricted.googleapis.com
- タイプ : A
- IPv4アドレス :
- 199.36.153.4
- 199.36.153.5
- 199.36.153.6
- 199.36.153.7
- 同ゾーンに以下を追加
- DNS名 : *.googleapis.com
- タイプ : CNAME
- 正規名 : restricted.googleapis.com

上記を設定すると挙動がどう変わるのでしょうか。例として、Compute Engine VM 内から gcloud storage コマンドを実行して、Cloud Storage へのアクセスが発生するときの内部的な動作を考えます。gcloud storage コマンドは、Cloud Storage API へリクエストするために、storage.googleapis.com へ HTTPS でアクセスしようとします。すると VM は Cloud DNS を参照しますので、限定公開ゾーンを優先的に使って名前解決します。内部的には、以下のような処理が行われます。
- VM が
storage.googleapis.comを名前解決するため、Cloud DNS へクエリする - クエリは
*.googleapis.comに一致しているので、CNAME でrestricted.googleapis.comへ解決される restricted.googleapis.comは A レコードにより199.36.153.4、199.36.153.5、199.36.153.6、199.36.153.7のどれかへ解決される- VM がクエリへのレスポンスを受け取る
- gcloud コマンドは、
199.36.153.4、199.36.153.5、199.36.153.6、199.36.153.7のいずれかへアクセス
VPC ネットワークの設定で、これらの IP アドレスへのルートがデフォルトインターネットゲートウェイへ向いており、かつファイアウォールで 443/TCP が許可されていれば、上記の処理の結果として、Google の内部ネットワークを通って API リクエストができます。
解決先の IP アドレスとして、private.googleapis.com では 199.36.153.8/30 を(上記の4つの IP アドレス)、restricted.googleapis.com では 199.36.153.4/30 を使う必要があります。
これらの IP アドレスは、インターネットに広報されていない、限定公開の Google アクセス専用の IP アドレスです。

private と restricted の違い
2つのドメイン名の違い
限定公開の Google アクセスでデフォルトのドメイン名を使わないパターンには、private.googleapis.com を利用するパターンと、restricted.googleapis.com を利用するパターンの2種類があります。いずれの場合も、基本的な仕組みは同様です。相違点は、アクセスできる API の種類と、利用する IP アドレス です。
この相違点については、Google Cloud 認定資格である Professional Cloud Network Engineer 試験や Professional Cloud Security Engineer試験でも問われますので、受験予定がある方は restricted.googleapis.com と private.googleapis.com の違いについて、正しく理解することが推奨されます。
- 参考 : Professional Cloud Network Engineer試験対策マニュアル - G-gen Tech Blog
- 参考 : Professional Cloud Security Engineer試験対策マニュアル。出題傾向・勉強方法 - G-gen Tech Blog
private.googleapis.com
private.googleapis.com を使うパターンでは、ほとんどの Google API へのアクセスが可能です。
次に説明する restricted.googleapis.com では、VPC Service Controls でサポートされている API にだけしかアクセスできませんが、private.googleapis.com では、VPC Service Controls のサポート有無は関係ありません。
private.googleapis.com を使うと、多くの API にアクセス可能な一方で、VPC Service Controls で VM からの API アクセスを厳密にコントロールしたい場合には適していません。
VPC Service Controls を使用ておらず、使用する予定もない場合や、VPC Service Controls を使用するものの、サポート対象でない API へのアクセスを許可する場合に、private.googleapis.com を選択することになります。
サポートされているアクセス先の一覧は、以下のドキュメントを参照してください。
DNS に登録する専用 IP アドレスは、199.36.153.8/30 です(199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11)。
restricted.googleapis.com
restricted.googleapis.com を使うパターンでは、VPC Service Controls でサポートされている Google API にのみ、アクセスできるようになります。それ以外の API へのアクセスは拒否されます。
VPC Service Controls を利用している、または利用する予定があり、かつ VM からは VPC Service Controls でサポートされていない API へのアクセスを禁止したい場合は、こちらを選択します。
サポートされているアクセス先の一覧は、以下のドキュメントを参照してください。
DNS に登録する専用 IP アドレスは 199.36.153.4/30(199.36.153.4、199.36.153.5、199.36.153.6、199.36.153.7)です。
選択フローチャート
どのドメインを選択すればいいか、簡単なフローチャートで見てみましょう。

一番左の、デフォルトのドメイン名を選択すると、図中にあるように VM が External IP アドレス持っていると、インターネットへアクセスできてしまうなどのリスクがあります。これを十分理解して選択しましょう。
有効化の手順
概要
当記事では、設定手順の概要だけを記載しています。詳細な設定手順は、以下の公式ドキュメントを参照してください。
デフォルトのドメインの場合
- 対象のサブネットで限定公開の Google アクセスを有効化
- VPC ネットワークのルート設定で、
0.0.0.0/0のネクストホップがデフォルトのインターネットゲートウェイへ向いていることを確認(デフォルトでは設定済み) - VPC ファイアウォールで、
0.0.0.0/0への 443/TCP の下り(Egress)通信が拒否されていないことを確認(デフォルトでは暗黙的に許可)
private.googleapis.com
- 対象のサブネットで限定公開の Google アクセスを有効化
- VPC ネットワークのルート設定で、
199.36.153.8/30のネクストホップがデフォルトのインターネットゲートウェイへ向いていることを確認(0.0.0.0/0がデフォルトインターネットゲートウェイに向いている設定でも問題ない) - VPC ファイアウォールで、
199.36.153.8/30への 443/TCP の 下り(Egress)通信が拒否されていないことを確認(デフォルトでは暗黙的に許可) - Cloud DNS に
googleapis.comという限定公開 DNS ゾーンを作成 - 同ゾーンに以下を追加
- DNS名 : private.googleapis.com
- タイプ : A
- IPv4アドレス :
- 199.36.153.8
- 199.36.153.9
- 199.36.153.10
- 199.36.153.11
- 同ゾーンに以下を追加
- DNS名 : *.googleapis.com
- タイプ : CNAME
- 正規名 : private.googleapis.com
restricted.googleapis.com
- 対象のサブネットで限定公開の Google アクセスを有効化
- VPC ネットワークのルート設定で、
199.36.153.4/30のネクストホップがデフォルトのインターネットゲートウェイへ向いていることを確認(0.0.0.0/0がデフォルトインターネットゲートウェイに向いている設定でも問題ない) - VPC ファイアウォールで、
199.36.153.4/30への 443/TCP の 下り(Egress)通信が拒否されていない ことを確認(デフォルトでは暗黙的に許可) - Cloud DNS に
googleapis.comという限定公開 DNS ゾーンを作成 - 同ゾーンに以下を追加
- DNS名 : restricted.googleapis.com
- タイプ : A
- IPv4アドレス :
- 199.36.153.4
- 199.36.153.5
- 199.36.153.6
- 199.36.153.7
- 同ゾーンに以下を追加
- DNS名 : *.googleapis.com
- タイプ : CNAME
- 正規名 : restricted.googleapis.com
オンプレミスから利用する
Cloud Interconnect や Cloud DNS で Google Cloud に接続されたオンプレミス環境から、限定公開の Google アクセスを利用するには、以下の設定が必要です。
- 限定公開の Google アクセスの IP アドレス(
199.36.153.8/30等)を Cloud Router からオンプレミス側に広報する - オンプレミスノードが参照する DNS に、フォワーダー設定を追加して、 Google Cloud APIs の名前解決を Cloud DNS の限定公開ゾーンに転送する
1つ目は、Cloud Router のカスタムルートアドバタイズを使うことで実現可能です。2つ目は、Cloud DNS の受信サーバーポリシーで実現可能です。
2つ目については、オンプレミスのクライアントが、限定公開の Google アクセスの IP アドレス(199.36.153.8/30 や 199.36.153.4/30)を向きさえすれば良いので、オンプレミスの DNS に Cloud DNS と同じレコードを追加しても構いません。
より詳細な設定手順は、以下の公式ドキュメントを参照してください。
限定公開の Google アクセス vs Private Service Connect
類似の機能として、Private Service Connect があります。
どちらの機能を利用したら良いのかについて以下の記事で説明していますので、ご参照ください。
杉村 勇馬 (記事一覧)
執行役員 CTO
元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。
Follow @y_sugi_it