こんにちは!開発エンジニアのクリスです!

社内ツールや限定公開のWebアプリを作るとき、一番「あぁ、面倒だな…」と感じる工程は何でしょうか?そう、「認証(Authentication)」ですよね。

これまで Cloud Run で Identity-Aware Proxy (IAP) を利用するには、前段に外部 HTTP(S) 負荷分散(Load Balancer)を置くのが必須でした。これが地味に手間だったんですよね。しかし、これからは負荷分散を介さずに Cloud Run へ直接 IAP を適用できるようになりました!

従来の「LB経由の構成」を詳しく知りたい方は、以下の公式ドキュメントが参考になります(がいかに大変かがわかります…)。

そもそも IAP (Identity-Aware Proxy) とは?

IAP は、Google Cloud のリソース(Cloud Run, App Engine, Compute Engine など)へのアクセスを制御するためのマネージドサービスです。

最大の特徴は、IP制限のような「ネットワークの場所」ではなく、「ユーザーの ID(Google アカウントなど)」と「コンテキスト(誰が、どんな状況で)」に基づいてアクセスを認可する点にあります。これにより、VPN を使わずに安全に社内アプリへアクセスさせる「ゼロトラスト」モデルを、驚くほど簡単に実現できるんです。

Cloud Run direct IAP は現在「プレビュー」段階

まず押さえておきたいのが、この Cloud Run への直接 IAP 統合機能は、現在 プレビュー(Preview) ステージにあるという点です。

今後、仕様が変更される可能性もあるため、本番環境への投入は慎重に検討する必要がありますが、開発環境や社内向けのプロトタイプであれば、今すぐ導入してその恩恵を受けるべき強力な機能だと言えます。

Google Cloud コンソールでの有効化手順

設定は拍子抜けするほど簡単です。以下の 3 ステップで完了します!

  1. Google Cloud コンソールで対象の Cloud Run サービスを選択。
  2. 「セキュリティ」タブをクリック。
  3. 「Identity-Aware Proxy (IAP)」 セクションのトグルをオンにする。

これだけで、アプリケーションの前に Google の認証画面が自動で差し込まれます。コードを 1 行も書かずに認証を実装できるのは、開発者として本当にありがたいですね。

特定のドメイン(会社ドメインなど)のみに制限する

IAP を有効にした後は、「誰にアクセスを許可するか」を設定しましょう。

例えば、「自社の社員(example.com のドメインを持つユーザー)だけ」に見せたい場合は、プリンシパルに自社のドメイン(example.comなど)指定し、ロールを割り当てるだけで OK です。

「OAuth 同意フロー(手動実装)」との比較

「Google ログインなら自分で実装できるよ」という方もいるかもしれませんが、Cloud Run IAP は運用面で圧倒的に優れています。比較表にまとめてみました。

 

機能 OAuth 同意フロー (手動実装) Cloud Run direct IAP
実装場所 アプリケーションコード内 インフラ(Google Cloud)層
開発工数(コスト) 数日〜(コード修正・テスト) 数分(ポチッと設定のみ)
メンテナンス ライブラリの更新などが必要 Google がまるっと管理
セキュリティ 実装の品質に依存 Google 標準のゼロトラスト

まとめ

Cloud Run direct IAP の登場で、セキュアなアプリ公開のハードルがぐっと下がりました。

  • インフラ設定だけで認証が完結する(No Code Security!)
  • 会社ドメインなどで簡単にアクセス制限が可能
  • Load Balancer 不要で構成がシンプルになり、コストも抑えられる

「管理画面を作りたいけど認証が面倒…」と後回しにしていたプロジェクトがあれば、ぜひこの機会に試してみてください!

参考ドキュメント: Cloud Run の IAP を構成する