「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく、全力で解説します。
今回解説する用語
限定公開のGoogleアクセスについて解説します。企業などでGoogle Cloudを使用する場合はセキュリティを担保するためにも必要な設定になります。また、公式ドキュメントを読んでいても頻出する単語だと思います。
VPCネットワークを理解したほうが、より理解が進むかと思いますので、VPCネットワークが分からない場合はまずは以下の記事を読んでみてください。
限定公開のGoogleアクセスとは?
限定公開のGoogleアクセスとは、外部IPアドレスを持たないGoogle CloudのリソースがGoogleのサービスやGoogleのAPIなどにアクセスできるようにするための機能のことです。これから図を用いて詳しく説明をしていきます。
具体的に説明するよ
Google Cloudのネットワークには、VPCネットワークとGoogleが管理するネットワークが存在します。以下の図のように、Google CloudのリソースもVPCネットワークかGoogleが管理するネットワークに配置されています。例えば、自身で作成したCompute EngineはVPCネットワーク内に配置され、Cloud Storage、AppEngine、CloudRun、BigQueryなどのリソースはGoogleが管理するネットワークに配置されています。
Google Cloudのリソースはインターネットを通してアクセスすることが前提で作られています。そのため、外部IPアドレスを持っていればGoogle Cloudのリソースにアクセスできますが、内部IPアドレスのみだとアクセスすることが出来ません。
「内部IPアドレスのみでGoogle Cloudのリソースにアクセスしたい!」という要望を叶えるのが限定公開のGoogleアクセスです。限定公開のGoogleアクセスをオンにすることで、内部IPアドレスのみでインターネットを通さずにGoogle Cloudのリソースにアクセスすることが出来ます。インターネットではなく、Google独自のネットワークを経由するので安全です。
以下の図のように、内部IPアドレスのみでGoogle Cloudのリソースにアクセスできます。限定公開がオフの場合はアクセスすることが出来ません。
利用するドメインを制限することでより安全に通信を行う
ちょっと応用的な感じで説明をします。
上記で説明したように限定公開のGoogleアクセスをオンにすると安全に通信が行えますが、デフォルトの設定だけだと、以下の設定をしなければなりません。
- 0.0.0.0/0 をデフォルトインターネットゲートウェイに向ける必要がある
- ファイアウォール ルールで 0.0.0.0/0 に対する外向きのHTTPS通信を許可する必要が
つまり、幅広にネットワークを開けておく必要があるということです。VPCから外へ出る通信は全許可ですね。
個人利用の場合は問題ないかと思いますが、外向きの通信が全部許可されているので、企業の場合は上記の設定はリスクがあります。例えば、外部IPアドレスを持っているVMインスタンスなどはインターネットへ接続し放題です。
private.googleapis.comとrestricted.googleapis.comのドメインを使用することで、Googleのサービスへ接続するドメインを制限することが出来るため、より安全な通信を行うことが出来ます。
GoogleのAPIとは?
GoogleのサービスはほとんどがWEB APIによって実行されます。
例えば、コンソールからCloud Storageを使用する場合は以下の図のようにCloud StorageのAPI使用しています。
ユーザーはAPIを利用していることは意識せずに使っていますが、実はstorage.googleapi.comにHTTPSアクセスをし、APIによってGoogleのサービスを使用しているのです。
private.googleapisやrestricted.googleapisを使用するとどうなるのか?
private.googleapisやrestricted.googleapisなどのドメインを使用することで、以下のような幅広にネットワークを開けるような設定をする必要がなくなります。
- 0.0.0.0/0 をデフォルトインターネットゲートウェイに向ける必要がある
- ファイアウォール ルールで 0.0.0.0/0 に対する外向きのHTTPS通信を許可する必要が
以下の図の上はデフォルトの設定の場合です。storage.googleapi.comへ通信をするために0.0.0.0/0を許可する必要があります。しかし、下のようにrestricted.googleapis.comを使用することで、199.36.153.8/30への通信を許可するだけでよくなります。
このようにして、より安全にGoogleのサービスへ接続することが出来るようになります。
restricted.googleapisを使用した、Google Cloudリソースへのアクセスするまでの流れ
restricted.googleapisを使用して、Google Cloudリソースへのアクセスするまでの流れをまとめます。以下のような流れで、Google Cloud Storageへアクセスされます。ちなみに利用者としては、いつもと変わらない使用感でGoogle Cloudのリソースを使用することが出来ます。
- コンソールからCloud Storageへアクセスすると、storage.googleapi.comへHTTPSリクエストが送られる
- storage.googleapi.comがrestricted.googleapis.comへ名前解決される
- 199.36.153.8/30へアクセスされ、そこからエンドポイント(storage.googleapi.com)へアクセスされる
- Cloud Storage APIが実行される
- Cloud Storageが操作される
設定方法などは以下の参考サイトを参考にしてください。