Cloud Run にデプロイしたアプリにIAPでGoogle認証機能つける
こんにちは!Google AI Studio がGA されて2年程経ちましたね。2023年には発表からサービス提供はしているらしいです。いつからデプロイできるようになったのか分からないですが、Google AI Studio で作成したものをGoogle Cloud でデプロイできるようになっています。
簡単で安価にできるので個人でも使用したいなとは思ったんですが、インターネットにはあげたくないな。。。ってなりました。Cloud Run で閲覧制限する方法ないかなって探しているとIAP というものがあるらしいと発見したので、その内容について書いていきます。
今回の構成
Google Ai Studio で作成したアプリケーションをCloud Run にデプロイして、IAPで認証・認可されたユーザのみがCloud Run にデプロイされたサイトを閲覧できるという構成です。
デプロイする前に
デプロイする前にIAPを使用するためにはGoogle Cloud 上で組織に属する必要があります。ということはGoogle Workspace を使う必要があるのかと。これはできないんじゃないとは思ってはいました。
できるそうです。
https://dev.classmethod.jp/articles/getting-started-google-cloud-identity
Google Cloud Identity Free Edition というのを使うことによってGoogle Workspace のようなものを無料で使用できます。怪しいものでもなく、Google の公式のサービスです。アカウント管理サービスを無料で利用できます。
Cloud Identity に登録するためには、Google Workspace と同様独自ドメインを使用する必要があるので、自分でドメインを所有していない人は取得するところから始める必要はあります。
これを登録すると、Google Cloud 上でもCloud Run 上でもIAPの設定ができるようになります。
そもそもIAP とは??
IAP はIdentity-Aware Proxy です。アイデンティティ認識型プロキシと日本語ではいうみたいです。
よくある手段はIP制限などのネットワークレベルでブロックや許可をするが、IAP はアプリケーションレベルでの制御をしています。それをGoogle 認証で実装している形になります。恐らくMicrosoft ならMicrosoftでの認証制御などを実施できると思います。恐らくMicrosoft EntraIDがそれにあたると思います。
画面で見るとこれです。これで一発で理解できると思います。
構築手順
設定は至って簡単です。まずは、自分のProject に移動します。そして、Cloud Run に移動します。セキュリティの設定があります。ここで、Identity-Aware Proxy (IAP)を選択します。
Cloud Run でのセキュリティ
IAPの認証を通すemailを追加
認証を通したいEmail を追加します。この時に注意する必要があるのは、同じドメインのemail に属している必要があるので、@gmail.com などの外部の組織になる人は追加できません。少なくとも組織に属してないので、推奨はされないかと思います。
(追加できる方法があれば教えてほしいです)
認証が通ると?
認証が通ると、作成した画面が表示されます。認証が通らないとGoogle 認証の設定に移動するか、認証されていませんの画面になります。
プリンシパルに設定したemail でログインできればそれでIAPの設定は上手くいっています!
参考サイト
https://docs.cloud.google.com/iap/docs/concepts-overview?hl=ja