IAM を使用したアクセス制御
このページでは、Identity and Access Management(IAM)を使用して Colab Enterprise リソースへのアクセスを管理する方法について説明します。他の Gemini Enterprise Agent Platform リソースのアクセスを管理するには、IAM による Agent Platform のアクセス制御をご覧ください。
IAM を使用してノートブックへのアクセスを制御する
Colab Enterprise ノートブック(IPYNB ファイル)へのアクセスは、プロジェクト レベルまたはノートブックごとに管理できます。
- プロジェクト レベルでノートブックへのアクセス権を付与するには、プリンシパル(ユーザー、グループ、またはサービス アカウント)に 1 つ以上のロールを割り当てます。
- 特定のノートブックへのアクセス権を付与するには、ノートブックのプリンシパルに 1 つ以上のロールを割り当てます。詳細については、ノートブックへのアクセスを管理するをご覧ください。
他の Google Cloud サービスとやり取りするコードを実行する
ノートブックへのアクセス権の付与は、ノートブックの操作に関連する特定の権限に限定されます。たとえば、ノートブックの作成、ノートブックへのコードの書き込み、ノートブックの削除の権限を付与できます。
他の Google Cloud サービスとやり取りするコードを実行するには、次のいずれかの方法を使用する必要があります。
エンドユーザー認証情報が有効になっているランタイムでコードを実行します。つまり、ノートブックの Google Cloud サービスへのアクセス権は、ノートブック ユーザーと同じになります。
ノートブックを認証してGoogle Cloud サービスを操作できるようにするコードを実行します。
詳細については、Google Cloudとやり取りするコードを実行するをご覧ください。
IAM ロールのタイプ
Colab Enterprise で使用できる IAM ロールには次の種類があります。
事前定義ロールを使用すると、Colab Enterprise のリソースに関連する一連の権限をプロジェクト レベルで付与できます。
基本ロール(オーナー、編集者、閲覧者)は、Colab Enterprise のリソースに対するアクセス制御をプロジェクト レベルで付与します。すべての Google Cloudサービスに共通のロールです。
カスタムロールを使用すると、特定の権限セットを選択し、それらの権限を持つ独自のロールを作成して、組織内のユーザーに付与できます。
これらのロールを Colab Enterprise プロジェクトで追加、更新、削除するには、プロジェクト、フォルダ、組織へのアクセスの管理のドキュメントをご覧ください。
Colab Enterprise の事前定義ロール
Colab Enterprise は Agent Platform の一部であり、Colab Enterprise リソースは Agent Platform API を介して管理されます。したがって、Agent Platform のロールを使用して、プリンシパルに Colab Enterprise リソースへのアクセス権を付与できます。
次の表に、Agent Platform のすべての事前定義ロールを示します。
一般的な Colab Enterprise オペレーションに事前定義ロールを使用するには、Colab Enterprise 管理者(
roles/aiplatform.colabEnterpriseAdmin)と Colab Enterprise ユーザー(roles/aiplatform.colabEnterpriseUser)をご覧ください。ランタイム管理に関連するロールについては、ノートブック ランタイム管理者(
roles/aiplatform.notebookRuntimeAdmin)とノートブック ランタイム ユーザー(roles/aiplatform.notebookRuntimeUser)をご覧ください。Agent Platform 管理者(
roles/aiplatform.admin)、Agent Platform ユーザー(roles/aiplatform.user)、Agent Platform 閲覧者(roles/aiplatform.viewer)にも、Colab Enterprise の権限が含まれています。
| Role | Permissions |
|---|---|
Agent Platform Administrator( Grants full access to all resources in Agent Platform. |
|
Aiplatform Editor( Editor role for aiplatform |
|
Agent Platform Express User Beta( Grants user access to Agent Platform Express. |
|
Agent Platform User( Grants access to use all resource in Agent Platform. |
|
Agent Platform Viewer( Grants access to view all resource in Agent Platform. |
|
Colab Enterprise Admin( Admin role of using colab enterprise. |
|
Colab Enterprise User( User role of using colab enterprise. |
|
Agent Platform Feature Store EntityType owner( Provides full access to all permissions for a particular entity type resource. Lowest-level resources where you can grant this role:
|
|
Agent Platform Express Admin Beta( Grants admin access to Agent Platform Express. |
|
Agent Platform Feature Store Admin( Grants full access to all resources in Agent Platform Feature Store. Lowest-level resources where you can grant this role:
|
|
Agent Platform Feature Store Data Viewer( This role provides permissions to read Feature data. Lowest-level resources where you can grant this role:
|
|
Agent Platform Feature Store Data Writer( This role provides permissions to read and write Feature data. Lowest-level resources where you can grant this role:
|
|
Agent Platform Feature Store Instance Creator( Administrator of Featurestore resources, but not the child resources under Featurestores. Lowest-level resources where you can grant this role:
|
|
Agent Platform Feature Store Resource Viewer( Viewer of all resources in Agent Platform Feature Store but cannot make changes. Lowest-level resources where you can grant this role:
|
|
Agent Platform Feature Store User Beta( Deprecated. Use featurestoreAdmin instead. |
|
Agent Platform Memory Bank Editor Role( Grants edit access to Agent Platform Memory Bank. |
|
Agent Platform Memory Bank User Role( Grants full user access to Agent Platform Memory Bank. |
|
Agent Platform Memory Bank Viewer Role( Grants viewer access to Agent Platform Memory Bank. |
|
Agent Platform Migration Service User( Grants access to use migration service in Agent Platform |
|
Notebook Executor User Beta( Grants users full access to schedules and notebook execution jobs. |
|
Notebook Runtime Admin( Grants full access to all runtime templates and runtimes in Notebook Service. |
|
Notebook Runtime User( Grants users permissions to create runtime resources using a runtime template and manage the runtime resources they created. |
|
Vertex AI Platform Provisioned Throughput Admin Beta( Grants access to use all resources related to Vertex AI Provisioned Throughput |
|
Vertex AI Platform Publisher Provisioned Throughput Admin Beta( Grants Publisher access to use all resources related to Vertex AI Provisioned Throughput Orders |
|
Vertex AI Platform Publisher Provisioned Throughput Viewer Beta( Grants Publisher access to view all resources related to Vertex AI Provisioned Throughput Orders |
|
Agent Platform Sessions Editor Role( Grants edit access to Agent Platform Sessions. |
|
Agent Platform Sessions User Role( Grants full user access to Agent Platform Sessions. |
|
Agent Platform Sessions Viewer Role( Grants viewer access to Agent Platform Sessions |
|
Agent Platform Tensorboard Web App User Beta( Grants access to the Vertex AI TensorBoard web app. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Vertex AI Agent Sandbox Service Agent( Vertex AI Service Agent used to access Agent Sandbox managed resources in consumer project with restricted permissions. |
|
Vertex AI Batch Prediction Service Agent( Vertex AI Batch Prediction Service Agent for serving batch prediction requests. |
|
Vertex AI Colab Service Agent( Gives Vertex AI Colab the proper permissions to function. |
|
Vertex AI Custom Code Service Agent( Gives Vertex AI Custom Code the proper permissions. The aiplatform.customJobs.create IAM permission is highly privileged. Through Vertex AI Custom Training jobs, it effectively grants editor-level access to other services activated for the consumer project, such as GCS and BigQuery. |
|
Vertex AI Extension Custom Code Service Agent( Gives Vertex AI Extension that executes custom code the permissions it needs to function. |
|
Vertex AI Extension Service Agent( Gives Vertex AI Extension the permissions it needs to function. |
|
Vertex AI Model Monitoring Service Agent( Gives Vertex AI Model Monitoring the permissions it needs to function. |
|
Vertex AI Notebook Service Agent( Vertex AI Service Agent used to run Notebook managed resources in user project with restricted permissions. |
|
Vertex AI Online Prediction Service Agent( Gives Vertex AI Online Prediction the permissions it needs to function. |
|
Vertex AI RAG Data Service Agent( Vertex AI Service Agent used by Vertex RAG to access user imported data, Vertex AI, Document AI processors, and Vector Search in the project |
|
Vertex AI Rapid Eval Service Agent( Vertex AI Service Agent used by GenAI Rapid Evaluation Service to access publisher model endpoints in the user project |
|
Vertex AI Reasoning Engine Service Agent( Gives Vertex AI Reasoning Engine the proper permissions to function. The aiplatform.reasoningEngines.create IAM permission implies read access to the GCS objects of the consumer project through this service agent. |
|
Vertex AI Service Agent( Gives Vertex AI the permissions it needs to function. |
|
Vertex AI Telemetry Service Agent( Allows Vertex AI Telemetry Service Agent to access telemetry data. |
|
Vertex AI Tuning Service Agent( Vertex AI Service Agent used for tuning in user project. |
|
基本ロール
従来の Google Cloud基本ロールは、すべての Google Cloud サービスで共通です。オーナー、編集者、閲覧者のロールがあります。
基本ロールは、Colab Enterprise だけでなく Google Cloud全体に対する権限を付与します。このため、可能であれば Colab Enterprise のロールを使用してください。
カスタムロール
Colab Enterprise の IAM 事前定義ロールがニーズに合わない場合は、カスタムロールを定義できます。カスタムロールを使用すると、特定の権限セットを選択し、それらの権限を持つ独自のロールを作成して、組織内のユーザーに付与できます。詳細については、IAM カスタムロールについてをご覧ください。
Colab Enterprise のサービス エージェント
Colab Enterprise は、ユーザーに代わってリソースにアクセスするために、サービス エージェントを自動的に作成して使用します。サービス エージェントが作成されると、サービス エージェントにプロジェクトの事前定義ロールが付与されます。
次の表に、Colab Enterprise サービス エージェント、そのメールアドレス、それぞれのロールを示します。
| 名前 | 用途 | メールアドレス | ロール |
|---|---|---|---|
| Vertex AI サービス エージェント | Agent Platform の機能 | service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com |
roles/aiplatform.serviceAgent |
| Vertex AI Colab サービス エージェント | Colab Enterprise が機能するための適切な権限を付与します | service-PROJECT_NUMBER@gcp-sa-vertex-nb.iam.gserviceaccount.com |
roles/aiplatform.colabServiceAgent |
| Vertex AI ノートブック サービス エージェント | 制限付きの権限を使用してユーザー プロジェクトでノートブック管理リソースを実行する | service-PROJECT_NUMBER@gcp-sa-aiplatform-vm.iam.gserviceaccount.com |
roles/aiplatform.notebookServiceAgent |
Colab Enterprise サービス エージェントのデフォルトのロールを削除すると、Colab Enterprise はこれらのロールを自動的に再割り当てし、サービス機能が中断されないようにします。Colab Enterprise サービスをオフにするには、ロールを削除するのではなく、関連する API をオフにする必要があります。
Colab Enterprise の権限に関するセキュリティ上の考慮事項
ユーザーが Colab Enterprise ノートブックを作成すると、そのノートブックに対するコードオーナー(roles/dataform.codeOwner)ロールが自動的に付与されます。このリソースレベルのロール付与は、プロジェクト レベルの IAM ロールとは異なります。
IAM は、ポリシーを階層構造で整理します。
- ユーザーはプロジェクト IAM ポリシーでロールを持つことができます。このロールは、プロジェクト内のすべてのリソースに自動的に伝播されます。
- ユーザーは、個々のノートブックなどの特定のリソース ポリシーでロールを持つこともできます。
ユーザーがリソース ポリシーまたはその親ポリシーのいずれかにロールを持っている場合、そのユーザーはリソースにアクセスできます。
ユーザーのアクセス権を完全に取り消すには、管理者は次のいずれかの操作を行います。
- 各ノートブックからユーザーのロールを削除します。詳細については、ノートブックからリソースレベルのアクセス権を削除するをご覧ください。
- IAM 拒否ポリシーを作成して、プロジェクト内のすべてのリソースに対するユーザーの権限をすべて取り消します。
Colab Enterprise のノートブックは Dataform に保存されるため、これらのノートブックにアクセスできるユーザーについては、次のセキュリティ上の影響を考慮する必要があります。
- ノートブックの可視性は、プロジェクト レベルの Dataform 権限に則って制御されます。
dataform.repositories.list権限を持つユーザー(Colab Enterprise ユーザー(roles/aiplatform.colabEnterpriseUser)や Colab Enterprise 管理者(roles/aiplatform.colabEnterpriseAdmin)などの標準の Colab Enterprise ロールに含まれる)は、これらのノートブックを作成したかどうか、またはこれらのノートブックが共有されたかどうかに関係なく、Google Cloud プロジェクト内のすべてのノートブックを表示できます。可視性を制限するには、dataform.repositories.list権限を除外するカスタムロールを作成します。 - Dataform サービス エージェントと共有されたシークレットは、ノートブックに対する編集権限を持つユーザーがアクセスできる可能性があります。認証情報を保護するには、編集アクセスを信頼できるユーザーに制限し、Dataform サービス エージェントがアクセスできるシークレットを制限します。詳細については、パッケージのインストール中のシークレット アクセスをご覧ください。
詳細については、Dataform 権限のセキュリティに関する考慮事項をご覧ください。
次のステップ
カスタム IAM ロールの作成および管理方法を学習する。
サービス エージェントの詳細を確認する