このステップでは、Cloud Run にデプロイされたアプリの一元的な承認レイヤをプロビジョニングするように Identity-Aware Proxy(IAP)を構成します。
OAuth 同意画面を構成する: OAuth 同意画面は、プロジェクトの概要、ポリシー、リクエストされたアクセスの認可スコープを含むプロンプトです。アプリの OAuth 同意画面を構成することで、ユーザーとアプリの審査担当者が利用できるものを定義し、後でアプリを公開できるようにアプリを登録します。OAuth 同意画面について詳しくは、OAuth 同意画面を構成し、スコープを選択するをご覧ください。
OAuth アクセス認証情報を作成する: アプリが必要な API を呼び出せるように、アプリとドメインに OAuth クライアント ID を作成する必要があります。OAuth 認証情報の詳細については、アクセス認証情報を作成するをご覧ください。
ロードバランサで IAP を有効にする: OAuth クライアント ID とシークレットを使用して、アプリ用に作成したロードバランサで IAP を有効にします。
IAP を有効にする: アプリにアクセスできるプリンシパルを作成し、IAP を有効にしてアプリを保護します。
OAuth 同意画面を構成する
Google Cloud コンソールで、OAuth の同意画面に移動します。
アプリのユーザータイプとして、次のいずれかを選択します。
外部: Google アカウントを持つすべてのユーザーが認可リクエストを送信できます。このチュートリアルを完了するために、[外部] を選択することをおすすめします。
内部: Google Cloud 組織のメンバーのみがアプリに対する認可リクエストを行うことができます。
[作成] をクリックします。
[承認済みドメイン] セクションで [ドメインの追加] をクリックし、証明書の作成時に使用したドメイン名を指定します。
[デベロッパーの連絡先情報] セクションにメールアドレスを入力します。
[保存して次へ] をクリックします。
[スコープ] ページで、[保存して次へ] をクリックします。
省略可: ユーザータイプとして [外部] を選択した場合は、[テストユーザー] ページで次のようにテストユーザーを追加します。
[ユーザーを追加] をクリックします。
メールアドレスと他の承認済みテストユーザーを入力し、[保存して次へ] をクリックします。
アプリ登録の概要を確認します。変更するには、[編集] をクリックします。アプリの登録に問題がなければ、[ダッシュボードに戻る] をクリックします。
OAuth アクセス認証情報を作成する
Google Cloud コンソールで、[認証情報] に移動します。
[認証情報を作成]、[OAuth クライアント ID] の順にクリックします。
[アプリケーションの種類] リストで、[ウェブ アプリケーション] をクリックします。
[名前] フィールドに「
gemini-streamlit-app
」と入力します。[承認済みの JavaScript 生成元] セクションで [URI を追加] をクリックし、次の URI を入力します。
https://DOMAIN_NAME
DOMAIN_NAME は、証明書の作成時に使用したドメイン名に置き換えます。
[作成] をクリックします。
[OAuth クライアントを作成しました] 画面が表示され、クライアント ID とクライアント シークレットが表示されます。
クライアント ID とクライアント シークレットをコピーします。この詳細は、チュートリアルの次のステップで必要になります。
ロードバランサで IAP を有効にする
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Cloud Shell ターミナルで次のコマンドを実行します。
gcloud compute backend-services update gemini-streamlit-app-backend \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \ --global
次のように置き換えます。
- CLIENT_ID: 作成した OAuth 認証情報の OAuth クライアント ID。
- CLIENT_SECRET: 作成した OAuth 認証情報の OAuth クライアント シークレット。
IAP を設定して使用する
[Identity-Aware Proxy] ページに移動します。
プロジェクトを選択します。
gemini-streamlit-app-backend
の横のチェックボックスをオンにします。[プリンシパルを追加] をクリックします。
次のフィールドに詳細を入力します。
新しいプリンシパル: アプリへのアクセス権を付与するグループまたは個人のメールアドレスを入力します。プリンシパルは次のいずれかです。
Google アカウント
Google グループ
サービス アカウント
Google Workspace ドメイン
追加する Google アカウントは、自分がアクセスできるものにしてください。
[ロール] リストで、[Cloud IAP] と [IAP で保護されたウェブアプリ ユーザー] を選択します。
[保存] をクリックします。
[Identity-Aware Proxy] ページの [アプリケーション] で、
gemini-streamlit-app-backend
リソースに対応する行の [IAP] 切り替えボタンをクリックしてオンにします。表示された [IAP の有効化] ウィンドウで、構成要件を読み、それに従ってバックエンドを構成したことを示すチェックボックスをオンにします。
[オンにする] をクリックします。IAP が有効になった後は、ロードバランサへのすべての接続でログイン認証情報が必要になります。プロジェクトで IAP で保護されたウェブアプリ ユーザーのロールを持つアカウントにのみアクセス権が付与されます。