Google Cloud の「限定公開の Google アクセス」って何?
はじめに
こんにちは、クラウドエース株式会社 第三開発部の新卒、中村です。
本記事では限定公開の Google アクセスについて、IT 経験が少ない人と同じ目線に立って紹介していきます。
限定公開の Google アクセスとは?
限定公開の Google アクセスを簡単に説明すると、セキュリティなどの観点で外部との接続が許可されていないリソースから、Google の API やサービスに接続できる限定的なアクセス方法を付与する機能です。
VM インスタンスなどの Google Cloud のリソースは、セキュリティ強化を目的として必要以上に外部と接続できないように設定することが一般的です。
VM インスタンスで例を挙げると、内部 IP のみを設定して外部 IP は設定しないという方法があります。
このように作成した VM インスタンスは同じ VPC 内にあるリソース間では内部 IP を用いて接続できますが、外部にある Google API や Web サイトにはアクセスすることができません。
そこで用いられるのが今回紹介する限定公開の Google アクセスです。限定公開の Google アクセスを用いると、VM インスタンスなどのリソースに外部 IP を指定せずとも、Google の API やサービスに接続できるようになります。限定公開の Google アクセスは無料で利用できます。
プライベートアクセス
Google が提供するプライベートアクセスは外部 IP を持たないリソースから Google のサービスや API に接続する方法の総称です。限定公開の Google アクセスはプライベートアクセスの一種に該当します。Google Cloud のサービスと API の接続には外部 IP を用いることが必要とされますが、プライベートアクセスを用いると外部 IP がなくとも接続が可能になります。
Google Cloud のプライベートアクセスには以下のような選択肢があります。
- 限定公開の Google アクセス
- Private Service Connect
- Private Service Access
2, 3 の接続方法では適用できる構成のバリエーションが増えますが、
新たに Google Cloud のリソースを作成する必要があったり、料金が発生したりします。
そのため、限定公開の Google アクセスで要件が満たせる場合は、費用もかからないため、最も手軽に利用できます。
詳細はプライベートアクセスオプションのドキュメントをご参照ください。
限定公開の Google アクセスの仕様
限定公開の Google アクセスは VPC ネットワークのサブネット単位で設定する必要があります。
Google Cloud のドキュメントでは図を用いて限定公開の Google アクセスを使用する際の例が挙げられています。
VPC ネットワーク内に2つのリージョンのサブネットがあり、左の VPC のサブネットでは限定公開の Google アクセスが ON、右では OFF になっています。
また、VM A1, B1 では内部 IP のみ、VM A2, B2 では内部 IP と外部 IP が設定されています。
黄色の線で表されたインターネットとのトラフィックは、限定公開の Google アクセスの有無に関わらず、外部 IP が設定されているインスタンスのみ許可されています。
一方で緑色の線で表された Google API やサービスとのトラフィックは、外部 IP が設定されているインスタンスと限定公開の Google アクセスが設定されているサブネット内にあるインスタンスに許可されます。
VM B1 のような外部 IP を持たず、かつ限定公開の Google アクセスが設定されていないサブネット内にあるインスタンスは、Google API やサービスとトラフィックのやり取りをすることができません。
なお補足として、Google の API やサービスに接続するだけでなく、インターネット上の一般的な Web サイト等にアクセスしてツールやソフトウェアをダウンロードしたい場合は、Cloud NAT というサービスを用いることでアクセスが可能になります。本記事での説明は割愛しますが、詳細については Cloud NAT のドキュメントをご参照ください。
利用方法
本項では、限定公開の Google アクセスを利用する手順を具体的に説明します。
その例として、Google の API に接続できる外部 IP を持たない VM インスタンスを作成していきます。
VPC ネットワークの作成
Google Cloud コンソールで VPC ネットワーク作成画面を開きます。
任意のネットワーク名を入力して、サブネット作成モードを「カスタム」に設定します。
サブネットの設定を開いて、名前・リージョン・IP 範囲を入力し、限定公開の Google アクセスをオンにします。
その他の設定はデフォルトのまま作成をクリックすれば VPC ネットワークの作成は完了です。
VM インスタンスの作成
Google Cloud コンソールで Compute Engine を選択し、VM インスタンスを開きます。
インスタンスを作成をクリックし、名前・リージョン・ゾーンを設定します。
詳細オプションを開いてネットワーキングのネットワークインターフェースを、先ほど作成した VPC ネットワークにして、外部 IP をなしに設定します。
作成をクリックすると、内部 IP のみを持った Google の API を利用することができる VM インスタンスが作成完了となります。
接続確認
上記の手順で作成した VM インスタンスが、想定通りに Google の API を利用できるかを Cloud Storage とのやり取りをすることで確認していきます。
Cloud Storage バケットの作成
Google Cloud コンソールで Cloud Storage の作成画面を開きます。
グローバルに一意になるように任意のバケット名を入力します。
今回は接続を確認できれば良いので、データの保存場所は単一リージョンに設定します。
その他の設定はデフォルトのまま作成をクリックします。
公開アクセスの防止のポップアップが出てくるので、公開アクセス禁止を適用して確認をクリックすれば、バケットの作成は完了です。
バケットにデータを保存
作成したバケットに PC からファイルをアップロードします。
作成したバケットを開いて、アップロード > ファイルをアップロードを選択。
任意のファイルを選択してアップロードしてください。
完了するとバケット内にファイルが表示されます。
VM インスタンスからバケットのデータを取得
Cloud Storage にあるバケットから VM インスタンスへファイルをコピーします。
VM インスタンスへ SSH 接続して Cloud Storage にアクセスしたいのですが、外部 IP が設定されていないため SSH 接続はできません。
そこで起動時スクリプトを利用して Cloud Storage にアクセスしていきます。
作成した VM インスタンスの編集をします。
管理の項にある自動化の起動スクリプト入力欄に以下のコマンドを入れます。
gsutil cp gs://バケット名/* .
保存が完了したら停止 > 開始/再開をすると起動スクリプトが実行されます。
インスタンスが実行中になったら VM インスタンスの詳細タブをオブザーバビリティに切り替えてログを確認します。
startup-script のログを見ると先ほどのコマンドが実行されて、無事に Cloud Storage にアクセスできていたことが分かります。
応用
限定公開の Google アクセスの利用方法として、オンプレミスホスト用に構成することも可能です。特定の Google API に対してのみ適用可能で、Cloud VPN または Cloud Interconnect を使用してオンプレミスネットワークから Google Cloud に接続し Google API やサービスにアクセスできます。
本記事での詳しい説明は割愛します。
詳細はオンプレミスホスト用の限定公開の Google アクセスのドキュメントをご参照ください。
まとめ
今回は限定公開の Google アクセスの概要とその利用方法についてご紹介しました。
Google Cloud を利用している方がこのワードを見た際に、この記事を読んで少しでも理解していただければ幸いです。
Discussion