ユーザー認証情報アクセス権を持つインスタンスを作成する

このページでは、ユーザー認証情報を使用して Google Cloud サービスと API にアクセスする Vertex AI Workbench インスタンスを作成する方法について説明します。

ユーザー認証情報は、Google アカウントに関連付けられている認証情報です。ユーザー認証情報によって、Google アカウントがアクセスできる Google Cloud サービスと API が決まります。

デフォルトでは、Vertex AI Workbench インスタンスでコードを実行すると、インスタンスのサービス アカウントに関連付けられた認証情報を使用して、インスタンスが Google Cloud サービスと API にアクセスできます。つまり、インスタンスにはサービス アカウントと同じ Google Cloud へのアクセス権が付与されます。

このページでは、ユーザー認証情報と同じ Google Cloud へのアクセス権を持つようにインスタンスを作成して構成する方法について説明します。

概要

Vertex AI Workbench は、グローバルな Google 管理の OAuth クライアントを使用して、ユーザー プロジェクトの Google Cloud リソースにスコープ設定されたユーザー認証情報のアクセスを管理します。ユーザーは、各 Vertex AI Workbench インスタンスの認証情報を管理するために、OAuth クライアントに同意する必要があります。これは、 Google Cloud コンソールで [JupyterLab を開く] ボタンをクリックしたときに開くダイアログで、インスタンスごとに 1 回行われます。

Vertex AI Workbench インスタンスの作成に使用されるサービス アカウントは、次のサービス エージェントです。

service-PROJECT_NUMBER@gcp-sa-notebooks-vm.iam.gserviceaccount.com

このサービス エージェントは、ログのエクスポートなどの重要なサービスに対して制限付きの権限を提供します。エンドユーザー認証情報機能が有効になっている場合、ユーザーは別のサービス アカウントを指定できません。

エンドユーザー認証情報が有効になっているインスタンスには、notebooks-managed-euc: true Compute Engine ラベルと euc-enabled: true メタデータキーが VM リソースに付加され、機能が有効になっていることを示します。

制限事項

プロジェクトを計画する際は、次の制限事項を考慮してください。

  • Vertex AI Workbench は、グローバルな Google 管理の OAuth クライアントを使用してユーザー認証情報のアクセスを管理します。組織は、きめ細かい制御を有効にしたり、OAuth クライアントにアクセスしたり、ロギングを使用して OAuth クライアントの使用状況を確認したりすることはできません。

  • マネージド ユーザー認証情報を使用して Vertex AI Workbench インスタンスのセキュリティを保護するため、ユーザーは次の操作を行うことができません

    • SSH を使用してインスタンスにアクセスします。
    • 起動後のスクリプトを実行します。
    • VM の詳細ページにアクセスします。
    • Google が作成したものではない画像を使用する。
  • OAuth クライアントは Google 管理の OAuth 認証情報のみをサポートしているため、サードパーティの認証情報の使用はサポートされていません。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

  8. 必要なロール

    Vertex AI Workbench インスタンスの作成に必要な権限を取得するには、プロジェクトに対する Notebooks ランナー roles/notebooks.runner)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    単一ユーザー インスタンスを作成する

    Google Cloud コンソールを使用して Vertex AI Workbench インスタンスを作成するには、次の操作を行います。

    1. Google Cloud コンソールで [インスタンス] ページに移動します。

      [インスタンス] に移動

    2. [新規作成] をクリックします。

    3. [新しいインスタンス] ダイアログで、[詳細オプション] をクリックします。

    4. [インスタンスを作成] ダイアログの [詳細] セクションで、新しいインスタンスについて次の情報を入力します。

      • ノートブック名: 新しいインスタンスの名前を入力します。 名前の先頭は英字で、それに続く最大 62 文字の英小文字、数字、ハイフン(-)で構成します。末尾は英字または数字にしてください。
      • リージョンゾーン: 新しいインスタンスのリージョンとゾーンを選択します。最適なネットワーク パフォーマンスを得るには、地理的に最も近いリージョンを選択してください。利用可能な Vertex AI Workbench のロケーションをご確認ください。
    5. [IAM とセキュリティ] セクションで、[シングル ユーザー] を選択します。

    6. [ユーザーのメール] フィールドに、アクセス権を付与するユーザー アカウントを入力します。指定したユーザーがインスタンスの作成者でない場合は、指定したユーザーにインスタンスのサービス アカウントに対するサービス アカウント ユーザーのロールroles/iam.serviceAccountUser)を付与する必要があります。

    7. [管理対象のエンドユーザーの認証情報を有効にする] を選択します。

    8. インスタンス作成ダイアログの残りの部分に入力して、[作成] をクリックします。

      Vertex AI Workbench がインスタンスを作成し、自動的に起動します。インスタンスを使用する準備が整うと、Vertex AI Workbench により Google Cloud コンソールで [JupyterLab を開く] が有効になります。

    9. ユーザーは、各 Vertex AI Workbench インスタンスの認証情報を管理するために、OAuth クライアントに同意する必要があります。これはインスタンスごとに 1 回行われます。同意するには、[JupyterLab を開く] をクリックし、表示されたダイアログの項目をすべて入力します。

      同意せずにインスタンスにアクセスしようとすると、JupyterLab はGoogle Cloud コンソールから JupyterLab を開いて認証するメッセージを表示します。

    10. エンドユーザーの認証情報が JupyterLab で使用可能であることを確認するには、JupyterLab でターミナルを開き、次のコマンドを入力します。

      gcloud auth list

    ユーザー認証情報を使用してインスタンスを認証する

    Vertex AI Workbench は、アプリケーションのデフォルト認証情報(ADC)を使用して、 Google Cloud サービスと API に対してユーザー認証情報を認証できます。このセクションでは、制限事項によりマネージド認証情報を有効にできない場合に、ユーザー認証情報を ADC に提供する方法について説明します。

    認証手順は、Google アカウントを使用しているか、サードパーティの認証情報を使用しているかによって異なります。

    Google アカウント

    インスタンスで JupyterLab にアクセスできるようになったら、次の操作を行います。

    1. Google Cloud コンソールで [インスタンス] ページに移動します。

      [Spanner インスタンス] に移動

    2. インスタンス名の横にある [JupyterLab を開く] をクリックします。

    3. JupyterLab で、[File] > [New] > [Terminal] を選択します。

    4. ターミナル ウィンドウで、次のコマンドを実行します。

      gcloud auth login
    5. Y」と入力します。

    6. 手順に沿って確認コードをコピーし、ターミナルに入力します。

    サードパーティの認証情報

    サードパーティの認証情報を使用してインスタンスを作成した場合は、JupyterLab プロキシが使用可能になったら、次の操作を行います。

    1. フェデレーション JupyterLab プロキシを使用して JupyterLab を開きます。

    2. JupyterLab で、[File] > [New] > [Terminal] を選択します。

    3. ヘッドレス ログインを使用して Workforce Identity 連携の認証情報ファイルを作成します。

    4. ターミナル ウィンドウで、次のコマンドを実行します。

      gcloud auth login --cred-file="CREDENTIAL_FILE"

      CREDENTIAL_FILE は、作成した認証情報ファイルのパスと名前に置き換えます。

    5. 手順に沿って、サードパーティの認証ポータルで認証します。

    6. 次のコマンドを使用して、インスタンスから認証情報にアクセスできることを確認します。

      gcloud auth list