【GCP】限定公開のGoogleアクセス

こんにちは!SCSKの山口です。初の投稿です。皆様温かい目でご覧いただけると幸いです。

記念すべき初回は「限定公開のGoogleアクセス」について紹介します。

限定公開のGoogle アクセスとは

概要

限定公開のGoogleアクセスは、簡潔に言うと外部IPアドレスを持たないインスタンスがGoogle APIとGoogle Cloudサービスの外部IPアドレスへアクセスすることを可能にする仕組みです。

Google CloudのAPIは、本来外部IPアドレスを使用したインターネット経由のアクセスにより接続される仕様となっています。

しかし、この”外部IPアドレスを持つ”といった特性はネットワーク外部と繋がることができることによって外部からの不正アクセス等のリスクにさらされるといった危険性を孕んでいます。

ここで登場するのが、今回紹介する限定公開のGoogleアクセスです。限定公開のGoogleアクセスを設定することで、インスタンスがインターネットを経由せずにGoogle APIとサービスにアクセスすることが可能になります。 

インスタンスが外部IPを持つ場合とインスタンスが外部IPを持たない場合

(左図)インスタンスが外部IPアドレスを持つ場合

[Compute Engine A1]

  • インターネットアクセス:可
  • Google API,Google Cloudサービスへのアクセス::可(インターネット経由でのアクセス)

[Compute Engine B1]

  • インターネットアクセス:可
  • Google API,Google Cloudサービスへのアクセス::可
    (⇒外部IPアドレスを持つインスタンスには限定公開のGoogleアクセスをつける必要がない(意味がない))
(右図)インスタンスが外部IPを持たない場合

[Compute Engine A1]

  • インターネットアクセス:不可
  • Google API,Google Cloudサービスへのアクセス : 不可

[Compute Engine B2]

  • インターネットアクセス:不可
  • Google API,Google Cloudサービスへのアクセス : 可
    (⇒メリット:インスタンスが外部IPアドレスを持てなくてもGoogle API,Google Cloudサービスへアクセスが可能)

設定方法

限定公開のGoogleアクセスは、サブネット単位で設定します。以下の設定画面から有効化することができます。

  • 新規作成時
    VPCネットワーク-VPCネットワークの作成-新しいサブネット-「限定公開のGoogleアクセス」を「オン」新規作成時の設定
  • 設定変更時
    VPCネットワーク-<サブネット名を選択>-編集-「限定公開のGoogleアクセス」を「オン」
    設定変更時

やってみた : 限定公開のGoogleアクセスを使用したCloud Storage へのアクセス

ここでは、実際に限定公開のGoogleアクセスを使用して、VPCネットワーク内に作成したCompute EngineからGoogle APIである「Cloud Storage」へのアクセスを実際にやってみます。

環境構築

  • プロジェクトを作成します。
    VPCを作成し、「限定公開のGoogleアクセス」を「オン」に設定したサブネットを追加します。
    ※外部IPアドレスは設定しない
    「限定公開のGoogleアクセス」を「オン」に設定
  • 追加したサブネット内に「外部IPアドレス」を「なし」でインスタンスを作成します。
    「外部IPアドレス」を「なし」でインスタンスを作成
  • 以下のCloud Storageを作成します。
    Cloud Storageを作成

ここまでの作業で、以下の環境が完成しました。

完成した環境

[検証①]Compute EngineからCloud Storageへのアクセス可否

ここから検証に入ります。今回はコマンドラインからCloud StorageへアクセスできるPythonアプリケーションの「gsutilツール」を用いて検証を行います。

gsutilツールではバケットの作成や削除、一覧表示や移動等の管理作業を行うことができます。オプションコマンドは以下の一覧の通りです。

オプションコマンドの一覧

今回は「gsutil ls」(バケットとオブジェクトの一覧表示)のコマンドを用いて検証します。

「gsutil ls」コマンドの実行結果は以下の通りです。

コマンドの実行結果

今回作成したCloud Storage(test-yamaguchi-20221130)へアクセスできていることが確認できました。

これにより、外部IPアドレスを持たないインスタンス(Compute Engine)が、「限定公開のGoogleアクセス」の設定によってサブネット外部のGoogle Cloud サービスへアクセスできていることが確認できました。

[検証②]限定公開のGoogleアクセスをオフにして再度検証①を行う

検証②では、サブネットの限定公開のGoogleアクセスをオフにした場合の、Compute EngineからCloud Storageへのアクセス可否を検証します。

限定公開のGoogleアクセスは、「VPCネットワーク-VPCネットワーク名-サブネット名」を選択し、「サブネットの詳細」画面で設定変更が可能です。

限定公開のGoogleアクセスの設定

⇒以下に変更

限定公開のGoogleアクセスの設定変更後

限定公開のGoogleアクセスをオフにし、再度検証①の「gsutil ls」を実行した際の結果は以下の通りです。

「gsutil ls」を実行した際の結果

上図のように、先ほどまで表示されていた「gs://test-yamaguchi-20221130」が表示されなくなり、Cloud Storageへのアクセスが不可能となっていることが確認できました。

終わりに

今回初めてブログを執筆したのですが、11月の末から執筆を開始して気づけば1月になっていました、、、
Google Cloudを使用し始めてまだ4か月ほどで、毎日が新しいインプットの連続です。今後、この場をお借りしてどんどんアウトプットしていきたいと思います。
(アウトプットのスピードも上げていきたいです、、、)

今回取り扱った「限定公開のGoogleアクセス」ですが、この機能を活用することで、Google Cloud内のみの通信でCloud Storage等のAPIやその他サービスを利用することができます。

クラウド環境を可能な限り閉じた(インターネットへの露出がない)環境にしたい場合に有効な機能だということがわかりました。

サポート対象のサービス

Google APIとGoogle Cloudサービスが対象。

詳しくはコチラ👇

Google API Explorer  |  Google APIs Explorer  |  Google Developers
Google API Explorer は、さまざまな Google API をインタラクティブに操作できるツールです。
参考URL
限定公開の Google アクセス  |  VPC  |  Google Cloud
限定公開の Google アクセスを構成する  |  VPC  |  Google Cloud
限定公開の Google アクセスを構成することで、内部 IP アドレスを持つ VM から Google API とサービスにアクセスできます。
タイトルとURLをコピーしました