ステップ 4: Identity-Aware Proxy(IAP)を構成する

このステップでは、次を行うことで Cloud Run にデプロイされたアプリの一元的な承認レイヤをプロビジョニングするように Identity-Aware Proxy(IAP)を構成します。

  1. OAuth 同意画面を構成する: OAuth 同意画面は、プロジェクトの概要、ポリシー、リクエストされたアクセスの認可スコープを含むプロンプトです。アプリの OAuth 同意画面を構成することで、ユーザーとアプリの審査担当者が利用できるものを定義し、後でアプリを公開できるようにアプリを登録します。OAuth 同意画面について詳しくは、OAuth 同意画面を構成し、スコープを選択するをご覧ください。

  2. OAuth アクセス認証情報を作成する: アプリが必要な API を呼び出せるように、アプリとドメインに OAuth クライアント ID を作成する必要があります。OAuth 認証情報の詳細については、アクセス認証情報を作成するをご覧ください。

  3. ロードバランサで IAP を有効にする: OAuth クライアント ID とシークレットを使用して、アプリ用に作成したロードバランサで IAP を有効にします。

  4. IAP を有効にする: アプリにアクセスできるプリンシパルを作成し、IAP を有効にしてアプリを保護します。

  1. Google Cloud コンソールで、[OAuth 同意画面] に移動します。

    [OAuth 同意画面] に移動

  2. アプリのユーザータイプとして、次のいずれかを選択します。

    • 外部: Google アカウントを持つすべてのユーザーが認可リクエストを送信できます。このチュートリアルにおいては、[外部] を選択することをおすすめします。

    • 内部: Google Cloud 組織のメンバーのみがアプリに対する認可リクエストを行うことができます。

  3. [作成] をクリックします。

  4. [承認済みドメイン] セクションで [ドメインの追加] をクリックし、証明書の作成時に使用したドメイン名を指定します。

  5. [デベロッパーの連絡先情報] セクションにメールアドレスを入力します。

  6. [保存して次へ] をクリックします。

  7. [スコープ] ページで、[保存して次へ] をクリックします。

  8. 省略可: ユーザータイプとして [外部] を選択した場合は、[テストユーザー] ページで次のようにテストユーザーを追加します。

    1. [ユーザーを追加] をクリックします。

    2. メールアドレスと他の承認済みテストユーザーを入力し、[保存して次へ] をクリックします。

  9. アプリ登録の概要を確認します。変更するには、[編集] をクリックします。アプリの登録に問題がなければ、[ダッシュボードに戻る] をクリックします。

OAuth アクセス認証情報を作成する

  1. Google Cloud コンソールで、[認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成]、[OAuth クライアント ID] の順にクリックします。

  3. [アプリケーションの種類] リストで、[ウェブ アプリケーション] をクリックします。

  4. [名前] フィールドに「gemini-streamlit-app」と入力します。

  5. [承認済みの JavaScript 生成元] セクションで [URI を追加] をクリックし、次の URI を入力します。

    https://DOMAIN_NAME
    

    DOMAIN_NAME は、証明書の作成時に使用したドメイン名に置き換えます。

  6. [作成] をクリックします。

    [OAuth クライアントを作成しました] 画面が表示され、クライアント ID とクライアント シークレットが表示されます。

  7. クライアント ID とクライアント シークレットをコピーします。この詳細は、チュートリアルの次のステップで必要になります。

ロードバランサで IAP を有効にする

  1. Google Cloud コンソールで Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. 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 を設定して使用する

  1. [Identity-Aware Proxy] ページに移動します。

    [Identity-Aware Proxy] ページに移動

  2. プロジェクトを選択します。

  3. gemini-streamlit-app-backend の横のチェックボックスをオンにします。

  4. [プリンシパルを追加] をクリックします。

  5. 次のフィールドに詳細を入力します。

    • 新しいプリンシパル: アプリへのアクセス権を付与するグループまたは個人のメールアドレスを入力します。プリンシパルは次のいずれかです。

      • Google アカウント

      • Google グループ

      • サービス アカウント

      • Google Workspace ドメイン

      自分がアクセスできる Google アカウントを必ず含めてください。

  6. [ロール] リストで、[Cloud IAP] > [IAP で保護されたウェブアプリ ユーザー] を選択します。

  7. [保存] をクリックします。

  8. [Identity-Aware Proxy] ページの [アプリケーション] で、gemini-streamlit-app-backend リソースに対応する行の [IAP] 切り替えボタンをクリックしてオンにします。

  9. 表示された [IAP の有効化] ウィンドウで、構成要件を読み、それに従ってバックエンドを構成したことを示すチェックボックスをオンにします。

  10. [有効にする] をクリックします。IAP が有効になった後は、ロードバランサへのすべての接続でログイン認証情報が必要になります。プロジェクトで IAP で保護されたウェブアプリ ユーザーのロールを持つアカウントにのみアクセス権が付与されます。