IAP を使用して生成 AI アプリを保護する

このチュートリアルでは、生成 AI アプリを Cloud Run にデプロイし、Identity-Aware Proxy(IAP)で保護する方法について説明します。IAP は、Cloud Run にデプロイされた HTTPS アプリケーションの一元的な認可レイヤを提供します。IAP を使用すると、ネットワーク レベルのファイアウォールを使用する代わりに、アプリケーション レベルまたは組織レベルでアクセス制御ポリシーを適用できます。

手動認証またはサードパーティ認証を使用して Cloud Run にデプロイされたアプリを保護することもできますが、アプリのサービングの中断を回避するため、大量のトラフィックまたはマルチリージョン トラフィックに IAP を使用することをおすすめします。

このチュートリアルでは、Gemini API を呼び出すアプリをデプロイします。このアプリは Streamlit フレームワークに基づいています。

前提条件

このチュートリアルでは、次のツールとフレームワークを使用できることを前提としています。

  • Streamlit: Streamlit は、データ アプリケーションを作成してデプロイできるオープンソースのアプリ フレームワークです。Python を使用して、データ スクリプトをウェブアプリに変換します。

  • Git: このチュートリアルでは、Git リポジトリを使用してアプリのソースコードを管理します。Git の使用方法については、Git のドキュメントをご覧ください。

Google Cloud サービス

Google Cloud サービスに関する次のような基本的な知識が必要です。

  • Vertex AI の生成 AI: Google の LLM にアクセスできます。アプリケーションで使用するためのテスト、チューニング、デプロイを行うことができます。Vertex AI の生成 AI の詳細

  • Cloud Run: コンテナ イメージをデプロイして実行できるマネージド コンピューティング プラットフォーム。アプリをデプロイする Cloud Run サービスを作成します。Cloud Run の詳細

  • Cloud Build: Google Cloud でビルドを実行します。このチュートリアルでは、自動 Cloud Build トリガーを設定して、commit を Git リポジトリに push するたびにアプリをビルドして Cloud Run にデプロイします。Cloud Build の詳細

  • Cloud Load Balancing: アプリの複数のインスタンスにトラフィックを分散してスケーラビリティを実現します。アプリケーション ロードバランサを作成して、Cloud Run でホストされているアプリのバックエンド インスタンスにトラフィックを分散します。Cloud Load Balancing は IAP の前提条件でもあります。Cloud Load Balancing の詳細

  • Identity-Aware Proxy(IAP): IAP を使用して、アプリを保護するための一元的な認可レイヤを作成します。IAP は、リンクされた Google Cloud サービスにまで及ぶ認証と認可のチェックを行います。IAP は Cloud Load Balancing をサポートし、シームレスに統合できるため、このチュートリアルでは最も効率的なセキュリティ管理オプションとなります。

    IAP の詳細については、Identity-Aware Proxy の概要をご覧ください。

    IAP が Cloud Run でどのように機能するかについては、IAP の仕組みの Cloud Run のセクションをご覧ください。

有効なドメイン名

また、ロードバランサの構成に必要な証明書をプロビジョニングするための有効なドメイン名が必要です。

チュートリアル ページ

このチュートリアルは、次のページから構成されています。

  1. プロジェクトとソース リポジトリを設定する。

  2. Cloud Run サービスを作成する。

  3. ロードバランサを作成する。

  4. Identity-Aware Proxy(IAP)を構成する。

  5. IAP で保護されたアプリをテストする。

  6. プロジェクトをクリーンアップする。

各ページは、前のページのチュートリアルの手順が完了していることを前提としています。