Google Cloud のサービスと API にアクセスする
このページでは、Colab Enterprise ノートブックから Google Cloud のサービスと API にアクセスする方法について説明します。
概要
Colab Enterprise ノートブックでコードを実行する場合は、Google アカウントに関連付けられた認証情報(ユーザー認証情報)を使用して、 Google Cloud のサービスと API にアクセスできます。つまり、使用するランタイムには、ユーザーと同じレベルの Google Cloud へのアクセス権が付与されます。これにより、 Google Cloud のサービスと API を操作するコードの作成と実行が容易になります。
Colab Enterprise は、アプリケーションのデフォルト認証情報(ADC)を使用して、 Google Cloud サービスと API に対するユーザー認証情報を認証できます。このページでは、ADC にユーザー認証情報を提供する次の方法について説明します。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
必要なロール
Colab Enterprise ノートブックで Google Cloud のサービスと API にアクセスするために必要な権限がユーザー アカウントに付与されるように、ユーザー アカウントにプロジェクトに対する Colab Enterprise 管理者(roles/aiplatform.colabEnterpriseAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をユーザー アカウントに付与することもできます。
エンドユーザー認証情報を有効にしたランタイムを使用する
エンドユーザー認証情報が有効になっているデフォルトのランタイム、またはエンドユーザー認証情報が有効になっているランタイム テンプレートから作成されたランタイムを使用できます。
エンドユーザー認証情報が有効になっている十分なランタイム テンプレートがない場合は、作成する必要があります。ランタイム テンプレートを作成するときに、エンドユーザー認証情報を有効または無効にする必要があります。この設定を後で変更することはできません。
エンドユーザー認証情報を有効にしてランタイムに接続する
エンドユーザー認証情報を有効にしてランタイムに接続するには:
-
Google Cloud コンソールで、Colab Enterprise の [ノートブック] ページに移動します。
-
[リージョン] メニューで、ノートブックを含むリージョンを選択します。
-
[マイ ノートブック] タブで、開きたいノートブックをクリックします。ノートブックをまだ作成していない場合は、ノートブックを作成します。
-
ノートブックで [Additional connection options] 展開矢印をクリックし、[Connect to a runtime] を選択します。
[Vertex AI ランタイムへの接続] ダイアログが開きます。
-
[Select a runtime] で、[既存のランタイムに接続します] を選択します。
-
[Select an existing runtime option] で、接続するランタイムを選択します。ランタイムがリストにない場合は、ランタイムを作成するか、デフォルトのランタイムに接続してください。
-
[ランタイムの詳細] テーブルで、[個人認証情報] が
Enabled
であることを確認します。 -
[接続] をクリックします。
-
エンドユーザー認証情報を有効にしてランタイムに初めて接続する場合は、[ログイン] ダイアログが表示されます。
Colab Enterprise にユーザー認証情報へのアクセス権を付与するには、次の操作を行います。
-
[ログイン] ダイアログで、ユーザー アカウントをクリックします。
-
[See, edit, configure, and delete your Google Cloud data...] を選択して、Colab Enterprise にユーザー認証情報へのアクセスを許可します。
-
[続行] をクリックします。
-
エンドユーザーの認証情報を使用して Google Cloud のサービスと API にアクセスする場合、Google アカウントにプロジェクトで必要な Identity and Access Management(IAM)権限がない場合、コードが一部のリソースにアクセスできない場合があります。その場合は、必要な権限を付与するよう管理者に依頼してください。
ノートブックでコードを実行して ADC にユーザー認証情報を提供する
ランタイムでエンドユーザー認証情報が有効になっていない場合でも、ユーザー認証情報を使用して Google Cloud のサービスと API にアクセスできます。これを行うには、Google Cloud CLI を使用してユーザー認証情報を ADC に提供します。
-
認証情報ファイルを作成するには、次のコマンドを使用します。
!gcloud auth application-default login
[ログイン] ダイアログが表示されます。
-
ダイアログを完了して、Colab Enterprise にアクセス権を付与します。
ログインすると、ADC で使用されるローカル認証情報ファイルに認証情報が保存されます。このファイルはランタイムの VM に保存されます。
ローカル ADC ファイルを作成するためのユーザー認証情報を提供する場合は、次の点に注意してください。
ユーザー認証情報は、追加のパラメータや構成がないと、一部のメソッドや API(Cloud Translation API や Cloud Vision API など)で機能しない場合があります。プロジェクトで API が有効になっていないというエラー メッセージが表示された場合、または利用可能な割り当てプロジェクトがない場合は、ADC 設定のトラブルシューティングをご覧ください。
ローカル ADC には、アクセス トークンと更新トークンが含まれます。ファイル システムにアクセスできるすべてのユーザーがこれらの認証情報を使用できます。これらのローカル認証情報が不要になった場合は、
gcloud auth application-default revoke
コマンドを使用して取り消すことができます。Google アカウントにプロジェクトで必要な Identity and Access Management(IAM)ロールがない場合、コードが一部のリソースにアクセスできない場合があります。この場合、他のユーザーから必要なロールを付与してもらう必要があります。
トラブルシューティング
このセクションでは、 Google Cloud のサービスと API を操作するコードの実行に関する問題を解決する方法について説明します。
コードの実行時にユーザーの認証情報が見つからない
この問題は、 Google Cloud のサービスと API を操作するノートブックでコードを実行しようとしたときに発生します。Colab Enterprise にユーザー認証情報へのアクセス権を付与していない場合、この問題が発生します。
エラー メッセージは次のいずれかになります。
Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential
DefaultCredentialsError: Your default credentials were not found.
この問題の一般的な原因とその解決策は次のとおりです。
-
エンドユーザー認証情報が有効になっているランタイムに初めて接続するときに表示される [ログイン] ダイアログを完了していません。このダイアログを完了すると、Colab Enterprise にユーザー認証情報へのアクセス権が付与されます。
この問題を解決するには、ランタイムに再度接続してアクセス権を付与してみてください。
アクセス権が付与されていることを確認するには:
-
[アカウント] > [管理対象の Google アカウント] > [データとプライバシー] > [サードパーティ製のアプリとサービス] をクリックします。
-
Colab Enterprise が表示されていることを確認します。
-
-
エンドユーザー認証情報が有効になっているランタイムに初めて接続するときに表示される [ログイン] ダイアログ(同意画面)で、Colab Enterprise にユーザー認証情報へのアクセスを許可するユーザー アカウントを選択しませんでした。
この問題を解決するには:
-
Google Cloud コンソールで、アカウント プロフィール画像をクリックし、[Google アカウント] をクリックします。
-
[データとプライバシー] をクリックします。
-
[ご利用のアプリ、サービスのデータ] で、[サードパーティ製のアプリとサービス] をクリックします。
-
[Colab Enterprise] をクリックします。
-
[Colab Enterprise に Google アカウントへの下記のアクセス権が付与されています] で [詳細を表示] をクリックします。
-
[アクセス権を削除] をクリックします。
-
[確認] をクリックします。
これにより、現在のアクセス設定が削除されます。
-
次回、エンドユーザー認証情報が有効になっているランタイムに接続するときに、[ログイン] ダイアログを完了するときに、正しいユーザー アカウントを選択してください。
-
-
ポップアップ ブロッカーが原因で、Colab Enterprise の [ログイン] ダイアログ(同意画面)が表示されない可能性があります。
この問題を解決するには、ブラウザでポップアップを一時的に有効にして、ランタイムに再度接続してみてください。
-
Google Workspace のその他のサービスで Colab が無効になっています。
この問題を解決するには、Google Workspace で Colab サービスを有効にします。
これは Colab を指していますが、Colab Enterprise にも影響します。
[Colab] は [オン(すべてのユーザー)] に設定する必要があります。
-
Enterprise サービスの制限により、Colab Enterprise へのアクセスがブロックされている可能性があります。
この問題を特定するには、 組織のサービス制限が Google サービスへのアクセスをブロックしていないことを確認します。
[サービスのステータス] が [オン(すべてのユーザー)] になっている。
-
エンドユーザー認証情報を有効にしたランタイムを使用しておらず、Google Cloud CLI を使用してアプリケーションのデフォルト認証情報(ADC)にユーザー認証情報を提供していない。
この問題を解決するには、ノートブックでコードを実行して ADC にユーザー認証情報を提供するをご覧ください。
次のステップ
アプリケーションのデフォルト認証情報の仕組みの詳細を確認する。
エンドユーザー認証情報を有効にしてランタイム テンプレートを作成します。
Vertex AI を操作するには、Colab Enterprise サイドパネルを使用します。詳しくは、次をご覧ください。