本页面介绍如何使用 Identity and Access Management (IAM) 管理对 Vertex AI 资源的访问。如需管理对 Vertex AI Workbench 实例的访问权限,请参阅 Vertex AI Workbench 实例访问权限控制。
概览
Vertex AI 使用 IAM 来管理对资源的访问。在规划资源的访问权限控制时,请考虑以下事项:
您可以在项目级层或资源级层管理访问权限。 项目级访问权限适用于该项目中的所有资源。对特定资源的访问权限仅适用于该资源。 请参阅项目级访问权限与资源级访问权限。
您可以通过向主账号分配 IAM 角色来授予访问权限。预定义角色可让您更轻松地设置访问权限,但我们建议使用自定义角色,因为您可以创建这些角色,以便将其访问权限限制为仅包含所需的权限。 请参阅 IAM 角色。
IAM 角色
您可以在 Vertex AI 中使用不同类型的 IAM 角色:
自定义角色让您可以基于一组特定权限创建具有这些权限的专属角色,然后将该角色授予组织中的用户。
预定义角色允许您在项目级向 Vertex AI 资源授予一组相关权限。
基本角色(Owner、Editor 和 Viewer)提供项目级层的 Vertex AI 资源的访问权限控制,并且适用于所有 Google Cloud 服务。
如需在 Vertex AI 项目中添加、更新或移除这些角色,请参阅有关授予、更改和撤消访问权限的文档。
自定义角色
自定义角色让您可以基于一组特定权限创建具有这些权限的专属角色,然后将该角色授予组织中的用户。如需了解详情,请参阅了解 IAM 自定义角色。
使用自定义角色授予最小权限
预定义角色通常包含超出您所需的权限。您可以创建自定义角色,以便仅向您的主账号授予所需的特定权限。
例如,您可以创建具有 aiplatform.endpoints.predict
权限的自定义角色,然后将该角色分配给端点上的服务账号。这会授予服务账号调用端点以进行预测的权限,但不会授予控制端点的权限。
Vertex AI 的预定义角色
Role | Permissions |
---|---|
Vertex AI Administrator( Grants full access to all resources in Vertex AI |
|
Colab Enterprise Admin( Admin role of using colab enterprise. |
|
Colab Enterprise User( User role of using colab enterprise. |
|
Vertex AI 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:
|
|
Vertex AI Platform Express Admin Beta( Grants admin access to Vertex AI Express |
|
Vertex AI Platform Express User Beta( Grants user access to Vertex AI Express |
|
Vertex AI Feature Store Admin( Grants full access to all resources in Vertex AI Feature Store Lowest-level resources where you can grant this role:
|
|
Vertex AI Feature Store Data Viewer( This role provides permissions to read Feature data. Lowest-level resources where you can grant this role:
|
|
Vertex AI Feature Store Data Writer( This role provides permissions to read and write Feature data. Lowest-level resources where you can grant this role:
|
|
Vertex AI Feature Store Instance Creator( Administrator of Featurestore resources, but not the child resources under Featurestores. Lowest-level resources where you can grant this role:
|
|
Vertex AI Feature Store Resource Viewer( Viewer of all resources in Vertex AI Feature Store but cannot make changes. Lowest-level resources where you can grant this role:
|
|
Vertex AI Feature Store User Beta( Deprecated. Use featurestoreAdmin instead. |
|
Vertex AI Migration Service User( Grants access to use migration service in Vertex AI |
|
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 Tensorboard Web App User Beta( Grants access to the Vertex AI TensorBoard web app. |
|
Vertex AI User( Grants access to use all resource in Vertex AI |
|
Vertex AI Viewer( Grants access to view all resource in Vertex AI |
|
基本角色
旧版 Google Cloud 基本角色适用于所有 Google Cloud 服务。这些角色包括 Owner、Editor 和 Viewer。
项目级访问权限与资源级访问权限
您可以在项目级层或资源级层管理访问权限。您可能还可以管理文件夹级或组织级的访问权限。
对于大多数 Vertex AI 资源,访问权限只能通过项目、文件夹和组织进行控制。您可以仅针对特定资源类型(例如端点或特征存储区)授予对各个资源的访问权限。
用户对其可以访问的所有资源拥有共享控制权。例如,如果用户注册了一个模型,则项目中的所有其他授权用户都可以访问、更改和删除该模型。
如需在项目级层授予资源访问权限,请为主账号(用户、群组或服务账号)分配一个或多个角色。
对于允许您在资源级授予访问权限的 Vertex AI 资源,您需要对该资源设置 IAM 政策。政策定义了将哪些角色分配给哪些主账号。
在资源级层设置政策不会影响项目级政策。资源会继承其祖先的所有政策。您可以使用这两个粒度级别来自定义权限。例如,您可以在项目级层授予用户读取权限,以便他们可以读取项目中的所有资源,然后在资源级层授予用户各个资源的写入权限。
并非所有 Vertex AI 预定义角色和资源都支持资源级政策。如需了解哪些角色可用于哪些资源,请参阅预定义角色表。
支持的资源
Vertex AI 支持 Vertex AI Feature Store 特征存储区和实体类型资源。如需了解详情,请参阅控制对 Vertex AI Feature Store 资源的访问权限。
授予或撤消对资源的访问权限后,这些更改需要一段时间才能传播。如需了解详情,请参阅访问权限更改传播。
资源、服务账号和服务代理
Vertex AI 服务通常会管理执行操作的长时间运行资源,例如运行读取训练数据的训练作业,或提供读取模型权重的机器学习 (ML) 模型。执行操作时,此类独立资源具有自己的资源身份。此身份与创建资源的主账号的身份不同。授予资源身份的权限定义了资源身份可以访问哪些数据和其他资源,而不是创建资源的正文的权限。
默认情况下,Vertex AI 资源使用由 Vertex AI 管理的服务账号作为资源身份。这些服务账号称为 Vertex AI 服务代理,并会关联到创建资源的项目。具有特定 Vertex AI 权限的用户可以创建使用 Vertex AI 服务代理的资源。对于某些服务,您可以指定要关联到资源的服务账号。该资源使用此服务账号访问其他资源和服务。如需详细了解服务账号,请参阅服务账号。
Vertex AI 会根据所调用的 API 使用不同的服务代理。每个服务代理对其关联的项目都有特定的 IAM 权限。资源身份使用这些权限执行操作,这些权限可能包括对项目中所有 Cloud Storage 资源和 BigQuery 数据的只读访问权限。
服务账号
服务账号是由应用或虚拟机 (VM) 实例(而非单个用户)使用的特殊账号。您可以创建服务账号并向服务账号分配权限,以便为资源或应用提供特定权限。
如需了解如何使用服务账号自定义自定义训练容器可用的权限,或为自定义训练模型提供在线预测的容器,可参阅使用账号。
服务账号由电子邮件地址标识。
服务代理
服务代理由系统自动提供;它们会代表您允许服务来访问资源。
创建服务代理后,系统会为服务代理授予项目的预定义角色。下表列出了 Vertex AI 服务代理、他们的电子邮件地址和各自的角色:
名称 | 用于: | 电子邮件地址 | 角色 |
---|---|---|---|
Vertex AI Service Agent | Vertex AI 功能 | service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com |
roles/aiplatform.serviceAgent |
Vertex AI Custom Code Service Agent |
自定义训练代码 Ray on Vertex AI 应用代码 |
service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com |
roles/aiplatform.customCodeServiceAgent |
Vertex AI Extension Service Agent | Vertex 扩展程序 | service-PROJECT_NUMBER@gcp-sa-vertex-ex.iam.gserviceaccount.com |
roles/aiplatform.extensionServiceAgent |
Cloud AI Platform Notebooks Service Account | Vertex AI Workbench 功能 | service-PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com |
roles/notebooks.serviceAgent |
只有在您运行自定义训练代码来训练自定义训练模型时,系统才会创建 Vertex AI Custom Code Service Agent。
服务代理角色和权限
查看向 Vertex AI 服务代理授予的以下角色和权限。
角色 | 权限 |
---|---|
Vertex AI Service Agent( 授予 Vertex AI 正常工作所需的权限。 |
|
Vertex AI Custom Code Service Agent( 为 Vertex AI Custom Code 授予适当的权限。 |
|
AI Platform Notebooks Service Agent( 授予 Notebooks 服务代理管理用户项目中的笔记本实例的权限 |
|
授予 Vertex AI 服务代理对其他资源的访问权限
有时,您需要向 Vertex AI 服务代理授予其他角色。例如,如果您需要 Vertex AI 访问其他项目中的 Cloud Storage 存储桶,则需要向服务代理授予一个或多个其他角色。
BigQuery 的角色添加要求
下表介绍了针对其他项目中的 BigQuery 表或视图或由外部数据源支持的 BigQuery 表或视图,需要向 Vertex AI Service Agent 添加的必需的额外角色。
术语“主项目”是指 Vertex AI 数据集或模型所在的项目。“其他项目”一词指的是任何其他项目。
表类型 | 表项目 | 数据源项目 | 需要添加的角色 |
---|---|---|---|
原生 BigQuery 表格 | 主项目 | 不适用 | 无。 |
原生 BigQuery 表格 | 其他项目 | 不适用 | BigQuery Data Viewer (针对其他项目)。了解详情。 |
BigQuery 视图 | 主项目 | 不适用 | 无。 |
BigQuery 视图 | 其他项目 | 不适用 | BigQuery Data Viewer (针对其他项目)。了解详情。 |
Bigtable 支持的外部 BigQuery 数据源 | 主项目 | 主项目 | Bigtable Reader (针对主项目)。了解详情。 |
Bigtable 支持的外部 BigQuery 数据源 | 主项目 | 其他项目 | Bigtable Reader (针对其他项目)。了解详情。 |
Bigtable 支持的外部 BigQuery 数据源 | 其他项目 | 其他项目 | BigQuery Reader 和 Bigtable Reader (针对其他项目)。了解详情。 |
Cloud Storage 支持的外部 BigQuery 数据源 | 主项目 | 主项目 | 无。 |
Cloud Storage 支持的外部 BigQuery 数据源 | 主项目 | 其他项目 | Storage Object Viewer (针对其他项目)。了解详情。 |
Cloud Storage 支持的外部 BigQuery 数据源 | 其他项目 | 其他项目 | Storage Object Viewer 和 BigQuery Data Viewer (针对其他项目)。了解详情。 |
Google Sheets 支持的外部 BigQuery 数据源 | 主项目 | 不适用 | 与 Vertex AI 服务账号共享表格文件。了解详情。 |
Google Sheets 支持的外部 BigQuery 数据源 | 其他项目 | 不适用 | BigQuery Reader (针对其他项目),并与 Vertex AI 服务账号共享表格文件。 |
Cloud Storage 的角色添加要求
如果您要访问不同项目的 Cloud Storage 存储桶中的数据,则必须对该项目中的 Vertex AI 授予 Storage > Storage Object Viewer
角色。了解详情。
如果您使用 Cloud Storage 存储桶从本地计算机接收导入操作的数据,并且该存储桶所属项目与 Google Cloud 项目不同,您必须在该项目中向 Vertex AI 提供 Storage > Storage Object Creator
角色。了解详情。
向主项目中的资源授予 Vertex AI 访问权限
如需向主项目中的 Vertex AI 服务代理授予其他角色,请执行以下操作:
前往主项目对应的 Google Cloud 控制台 IAM 页面。
选中包括 Google 提供的角色授权复选框。
确定要授予权限的服务代理,然后点击 铅笔图标。
您可以过滤 Principal:@gcp-sa-aiplatform-cc.iam.gserviceaccount.com,找到 Vertex AI Service Agent。
向服务账号授予所需角色并保存所做的更改。
向不同项目中的资源授予 Vertex AI 访问权限
当您在其他项目中使用数据源或目标时,您必须在该项目中授予 Vertex AI 服务账号权限。Vertex AI 服务账号是在启动第一个异步作业(例如创建端点)后创建的。您还可以按照这些说明使用 gcloud CLI 明确创建 Vertex AI 服务账号。 此 gcloud 命令将同时创建默认服务账号和自定义代码服务账号,但响应中只会返回默认服务账号。
如需在其他项目中添加 Vertex AI 的权限,请执行以下操作:
前往主项目(您使用 Vertex AI 的项目)的 Google Cloud 控制台 IAM 页面。
选中包括 Google 提供的角色授权复选框。
确定要授予相应权限的服务代理,并复制其电子邮件地址(在主账号下方列出)。
您可以过滤 Principal:@gcp-sa-aiplatform-cc.iam.gserviceaccount.com,找到 Vertex AI Service Agent。
将项目更改为需要授予权限的项目。
点击添加,并在新建主账号中输入电子邮件地址。
添加所有必需的角色,并点击保存。
提供对 Google 表格的访问权限
如果您使用由 Google 表格提供支持的外部 BigQuery 数据源,则必须与 Vertex AI 服务账号共享表格。Vertex AI 服务账号是在启动第一个异步作业(例如创建端点)后创建的。您还可以按照此说明使用 gcloud CLI 明确创建 Vertex AI 服务账号。
如需授权 Vertex AI 访问您的表格文件,请执行以下操作:
在 Google Cloud 控制台中,前往 IAM 页面。
查找名为
Vertex AI Service Agent
的服务账号并复制其电子邮件地址(在主账号下方列出)。打开您的表格文件并与该地址共享。
后续步骤
- 详细了解 IAM。
- 了解特定的 IAM 权限及其支持的操作。
- 如需了解为团队设置项目的推荐方法,请参阅为团队设置项目。
- 大致了解 Vertex AI。