访问权限控制机制

Vertex AI 使用 Identity and Access Management (IAM) 管理资源访问权限。如需授予对某项资源的访问权限,请为用户、群组或服务帐号分配一个或多个角色

您可以在 Vertex AI 中使用不同类型的 IAM 角色:

  • 预定义角色允许您在项目级向 Vertex AI 资源授予一组相关权限。

  • 基本角色(Owner、Editor 和 Viewer)提供项目级层的 Vertex AI 资源的访问权限控制,并且适用于所有 Google Cloud 服务。

  • 自定义角色让您可以基于一组特定权限创建具有这些权限的专属角色,然后将该角色授予组织中的用户。

如需在 Vertex AI 项目中添加、更新或移除这些角色,请参阅有关授予、更改和撤消团队成员访问权限的文档。

Vertex AI 的预定义角色

角色 名称 说明 权限 最低资源要求
roles/aiplatform.admin Vertex AI Administrator Beta 版 授予对 Vertex AI 中所有资源的完整访问权限
  • aiplatform.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/aiplatform.featurestoreAdmin Vertex AI Feature Store Admin Beta 版 授予对 Vertex AI 功能商店中所有资源的完整访问权限
  • aiplatform.entityTypes.*
  • aiplatform.features.*
  • aiplatform.featurestores.*
  • aiplatform.operations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/aiplatform.featurestoreDataViewer Vertex AI Feature Store Data Viewer Beta 版 此角色提供读取特征数据的权限。
  • aiplatform.entityTypes.get
  • aiplatform.entityTypes.readFeatureValues
  • aiplatform.entityTypes.streamingReadFeatureValues
  • aiplatform.features.get
  • aiplatform.features.list
  • aiplatform.featurestores.batchReadFeatureValues
roles/aiplatform.featurestoreDataWriter Vertex AI Feature Store Data Writer Beta 版 此角色提供读取和写入特征数据的权限。
  • aiplatform.entityTypes.get
  • aiplatform.entityTypes.importFeatureValues
  • aiplatform.entityTypes.readFeatureValues
  • aiplatform.entityTypes.streamingReadFeatureValues
  • aiplatform.entityTypes.writeFeatureValues
  • aiplatform.features.get
  • aiplatform.features.list
  • aiplatform.featurestores.batchReadFeatureValues
roles/aiplatform.featurestoreInstanceCreator Vertex AI Feature Store Instance Creator Beta 版 可以管理 Featurestore 资源,但不能管理 Featurestore 下的子资源。
  • aiplatform.featurestores.create
  • aiplatform.featurestores.delete
  • aiplatform.featurestores.get
  • aiplatform.featurestores.list
  • aiplatform.featurestores.update
roles/aiplatform.featurestoreResourceEditor Vertex AI Feature Store Resource Editor Beta 版 可以管理 Featurestore 中的所有资源,但不能创建或更新 Featurestore。
  • aiplatform.entityTypes.create
  • aiplatform.entityTypes.delete
  • aiplatform.entityTypes.get
  • aiplatform.entityTypes.list
  • aiplatform.entityTypes.update
  • aiplatform.features.*
  • aiplatform.featurestores.get
  • aiplatform.featurestores.list
  • aiplatform.operations.*
roles/aiplatform.featurestoreResourceViewer Vertex AI Feature Store Resource Viewer Beta 版 可以查看 Vertex AI Feature Store 中的所有资源,但不能对其执行更改。
  • aiplatform.entityTypes.get
  • aiplatform.entityTypes.list
  • aiplatform.features.get
  • aiplatform.features.list
  • aiplatform.featurestores.get
  • aiplatform.featurestores.list
  • aiplatform.operations.*
roles/aiplatform.featurestoreUser Vertex AI Feature Store User Beta 版 已弃用。请改用 featurestoreAdmin。
  • aiplatform.entityTypes.*
  • aiplatform.features.*
  • aiplatform.featurestores.*
  • aiplatform.operations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/aiplatform.migrator Vertex AI Migration Service User Beta 版 授予对 Vertex AI 中的迁移服务的使用权限
  • aiplatform.migratableResources.*
roles/aiplatform.user Vertex AI User Beta 版 授予对 Vertex AI 中所有资源的使用权限
  • aiplatform.annotationSpecs.*
  • aiplatform.annotations.*
  • aiplatform.artifacts.*
  • aiplatform.batchPredictionJobs.*
  • aiplatform.contexts.*
  • aiplatform.customJobs.*
  • aiplatform.dataItems.*
  • aiplatform.dataLabelingJobs.*
  • aiplatform.datasets.*
  • aiplatform.edgeDeploymentJobs.*
  • aiplatform.edgeDeviceDebugInfo.*
  • aiplatform.edgeDevices.*
  • aiplatform.endpoints.*
  • aiplatform.entityTypes.*
  • aiplatform.executions.*
  • aiplatform.features.*
  • aiplatform.featurestores.*
  • aiplatform.humanInTheLoops.*
  • aiplatform.hyperparameterTuningJobs.*
  • aiplatform.indexEndpoints.*
  • aiplatform.indexes.*
  • aiplatform.locations.*
  • aiplatform.metadataSchemas.*
  • aiplatform.metadataStores.*
  • aiplatform.modelDeploymentMonitoringJobs.*
  • aiplatform.modelEvaluationSlices.*
  • aiplatform.modelEvaluations.*
  • aiplatform.models.*
  • aiplatform.nasJobs.*
  • aiplatform.operations.*
  • aiplatform.pipelineJobs.*
  • aiplatform.specialistPools.*
  • aiplatform.studies.*
  • aiplatform.tensorboardExperiments.*
  • aiplatform.tensorboardRuns.*
  • aiplatform.tensorboardTimeSeries.*
  • aiplatform.tensorboards.*
  • aiplatform.trainingPipelines.*
  • aiplatform.trials.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/aiplatform.viewer Vertex AI Viewer Beta 版 授予对 Vertex AI 中所有资源的查看权限
  • aiplatform.annotationSpecs.get
  • aiplatform.annotationSpecs.list
  • aiplatform.annotations.get
  • aiplatform.annotations.list
  • aiplatform.artifacts.get
  • aiplatform.artifacts.list
  • aiplatform.batchPredictionJobs.get
  • aiplatform.batchPredictionJobs.list
  • aiplatform.contexts.get
  • aiplatform.contexts.list
  • aiplatform.contexts.queryContextLineageSubgraph
  • aiplatform.customJobs.get
  • aiplatform.customJobs.list
  • aiplatform.dataItems.get
  • aiplatform.dataItems.list
  • aiplatform.dataLabelingJobs.get
  • aiplatform.dataLabelingJobs.list
  • aiplatform.datasets.get
  • aiplatform.datasets.list
  • aiplatform.edgeDeploymentJobs.get
  • aiplatform.edgeDeploymentJobs.list
  • aiplatform.edgeDeviceDebugInfo.*
  • aiplatform.edgeDevices.get
  • aiplatform.edgeDevices.list
  • aiplatform.endpoints.get
  • aiplatform.endpoints.list
  • aiplatform.entityTypes.get
  • aiplatform.entityTypes.list
  • aiplatform.executions.get
  • aiplatform.executions.list
  • aiplatform.executions.queryExecutionInputsAndOutputs
  • aiplatform.features.get
  • aiplatform.features.list
  • aiplatform.featurestores.get
  • aiplatform.featurestores.list
  • aiplatform.humanInTheLoops.get
  • aiplatform.humanInTheLoops.list
  • aiplatform.hyperparameterTuningJobs.get
  • aiplatform.hyperparameterTuningJobs.list
  • aiplatform.indexEndpoints.get
  • aiplatform.indexEndpoints.list
  • aiplatform.indexes.get
  • aiplatform.indexes.list
  • aiplatform.locations.*
  • aiplatform.metadataSchemas.get
  • aiplatform.metadataSchemas.list
  • aiplatform.metadataStores.get
  • aiplatform.metadataStores.list
  • aiplatform.modelDeploymentMonitoringJobs.get
  • aiplatform.modelDeploymentMonitoringJobs.list
  • aiplatform.modelDeploymentMonitoringJobs.searchStatsAnomalies
  • aiplatform.modelEvaluationSlices.*
  • aiplatform.modelEvaluations.get
  • aiplatform.modelEvaluations.list
  • aiplatform.models.get
  • aiplatform.models.list
  • aiplatform.nasJobs.get
  • aiplatform.nasJobs.list
  • aiplatform.operations.*
  • aiplatform.pipelineJobs.get
  • aiplatform.pipelineJobs.list
  • aiplatform.specialistPools.get
  • aiplatform.specialistPools.list
  • aiplatform.specialistPools.update
  • aiplatform.studies.get
  • aiplatform.studies.list
  • aiplatform.tensorboardExperiments.get
  • aiplatform.tensorboardExperiments.list
  • aiplatform.tensorboardRuns.get
  • aiplatform.tensorboardRuns.list
  • aiplatform.tensorboardTimeSeries.get
  • aiplatform.tensorboardTimeSeries.list
  • aiplatform.tensorboardTimeSeries.read
  • aiplatform.tensorboards.get
  • aiplatform.tensorboards.list
  • aiplatform.trainingPipelines.get
  • aiplatform.trainingPipelines.list
  • aiplatform.trials.get
  • aiplatform.trials.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

基本角色

旧版 Google Cloud 基本角色适用于所有 Google Cloud 服务。这些角色包括 Owner、Editor 和 Viewer。

这些基本角色可在整个 Google Cloud 中提供权限,而不仅仅是针对 Vertex AI。因此,您应尽可能使用 Vertex AI 角色。

自定义角色

如果 Vertex AI 的预定义 IAM 角色不符合您的需求,您可以定义自定义角色。自定义角色让您可以基于一组特定权限创建具有这些权限的专属角色,然后将该角色授予组织中的用户。如需了解详情,请参阅了解 IAM 自定义角色

服务帐号和服务代理简介

服务帐号

服务帐号是由应用或虚拟机 (VM) 实例(而非单个用户)使用的特殊帐号。您可以创建服务帐号并向服务帐号分配权限,以便为资源或应用提供特定权限。

如需了解如何使用服务帐号自定义自定义训练容器可用的权限,或为自定义训练模型提供在线预测的容器,可参阅使用帐号

服务帐号由电子邮件地址标识。

服务代理

服务代理是由 Google 自动管理的服务帐号;它们将代表您访问资源以启用服务。Vertex AI 使用以下服务代理:

姓名 用于: 电子邮件地址
Vertex AI Service Agent Vertex AI 功能 service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Vertex AI Custom Code Service Agent 自定义训练代码 service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com

只有在您运行自定义训练代码来训练自定义训练模型时,系统才会创建 Vertex AI Custom Code Service Agent。

创建后,每个服务代理都会被授予项目的以下预定义角色之一。每个服务代理都会被授予与其名称匹配的角色。

角色 名称 说明 权限
roles/aiplatform.serviceAgent Vertex AI Service Agent 授予 Vertex AI 正常工作所需的权限。
  • aiplatform.annotationSpecs.*
  • aiplatform.annotations.*
  • aiplatform.artifacts.*
  • aiplatform.batchPredictionJobs.*
  • aiplatform.contexts.*
  • aiplatform.customJobs.*
  • aiplatform.dataItems.*
  • aiplatform.dataLabelingJobs.*
  • aiplatform.datasets.*
  • aiplatform.edgeDeploymentJobs.*
  • aiplatform.edgeDeviceDebugInfo.*
  • aiplatform.edgeDevices.*
  • aiplatform.endpoints.*
  • aiplatform.entityTypes.*
  • aiplatform.executions.*
  • aiplatform.features.*
  • aiplatform.featurestores.*
  • aiplatform.humanInTheLoops.*
  • aiplatform.hyperparameterTuningJobs.*
  • aiplatform.indexEndpoints.*
  • aiplatform.indexes.*
  • aiplatform.locations.*
  • aiplatform.metadataSchemas.*
  • aiplatform.metadataStores.*
  • aiplatform.modelDeploymentMonitoringJobs.*
  • aiplatform.modelEvaluationSlices.*
  • aiplatform.modelEvaluations.*
  • aiplatform.models.*
  • aiplatform.nasJobs.*
  • aiplatform.operations.*
  • aiplatform.pipelineJobs.*
  • aiplatform.specialistPools.*
  • aiplatform.studies.*
  • aiplatform.tensorboardExperiments.*
  • aiplatform.tensorboardRuns.*
  • aiplatform.tensorboardTimeSeries.*
  • aiplatform.tensorboards.*
  • aiplatform.trainingPipelines.*
  • aiplatform.trials.*
  • artifactregistry.repositories.create
  • artifactregistry.repositories.downloadArtifacts
  • artifactregistry.repositories.get
  • artifactregistry.repositories.list
  • artifactregistry.repositories.uploadArtifacts
  • artifactregistry.tags.get
  • artifactregistry.versions.get
  • automl.datasets.export
  • automl.datasets.get
  • automl.datasets.list
  • automl.modelEvaluations.list
  • automl.models.get
  • automl.models.list
  • automl.operations.get
  • automl.tableSpecs.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.jobs.create
  • bigquery.jobs.get
  • bigquery.readsessions.create
  • bigquery.tables.create
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigtable.tables.get
  • bigtable.tables.list
  • bigtable.tables.readRows
  • datalabeling.annotateddatasets.get
  • datalabeling.datasets.export
  • datalabeling.datasets.get
  • datalabeling.datasets.list
  • datalabeling.operations.get
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • logging.logEntries.create
  • ml.models.list
  • ml.operations.get
  • ml.versions.get
  • ml.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.services.use
  • storage.buckets.create
  • storage.buckets.delete
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update
roles/aiplatform.customCodeServiceAgent Vertex AI Custom Code Service Agent 为 Vertex AI Custom Code 授予适当的权限。
  • aiplatform.annotationSpecs.*
  • aiplatform.annotations.*
  • aiplatform.artifacts.*
  • aiplatform.batchPredictionJobs.*
  • aiplatform.contexts.*
  • aiplatform.customJobs.*
  • aiplatform.dataItems.*
  • aiplatform.dataLabelingJobs.*
  • aiplatform.datasets.*
  • aiplatform.edgeDeploymentJobs.*
  • aiplatform.edgeDeviceDebugInfo.*
  • aiplatform.edgeDevices.*
  • aiplatform.endpoints.*
  • aiplatform.entityTypes.*
  • aiplatform.executions.*
  • aiplatform.features.*
  • aiplatform.featurestores.*
  • aiplatform.humanInTheLoops.*
  • aiplatform.hyperparameterTuningJobs.*
  • aiplatform.indexEndpoints.*
  • aiplatform.indexes.*
  • aiplatform.locations.*
  • aiplatform.metadataSchemas.*
  • aiplatform.metadataStores.*
  • aiplatform.modelDeploymentMonitoringJobs.*
  • aiplatform.modelEvaluationSlices.*
  • aiplatform.modelEvaluations.*
  • aiplatform.models.*
  • aiplatform.nasJobs.*
  • aiplatform.operations.*
  • aiplatform.pipelineJobs.*
  • aiplatform.specialistPools.*
  • aiplatform.studies.*
  • aiplatform.tensorboardExperiments.*
  • aiplatform.tensorboardRuns.*
  • aiplatform.tensorboardTimeSeries.*
  • aiplatform.tensorboards.*
  • aiplatform.trainingPipelines.*
  • aiplatform.trials.*
  • artifactregistry.repositories.downloadArtifacts
  • artifactregistry.repositories.get
  • artifactregistry.repositories.list
  • artifactregistry.tags.get
  • artifactregistry.versions.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.jobs.create
  • bigquery.jobs.get
  • bigquery.readsessions.create
  • bigquery.readsessions.getData
  • bigquery.tables.create
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.update
  • bigquery.tables.updateData
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.list
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
  • logging.logEntries.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.services.use
  • storage.buckets.create
  • storage.buckets.delete
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update

授予 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 ReaderBigtable Reader(针对外部项目)。了解详情
Cloud Storage 支持的外部 BigQuery 数据源 主项目 主项目 无。
Cloud Storage 支持的外部 BigQuery 数据源 主项目 外部项目 Storage Object Viewer(针对外部项目)。了解详情
Cloud Storage 支持的外部 BigQuery 数据源 外部项目 外部项目 Storage Object ViewerBigQuery 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 存储分区接收导入操作从本地计算机接收的数据,并且该存储分区与 Cloud 项目不同,则必须为该项目中的 Vertex AI 提供 Storage > Storage Object Creator 角色。了解详情

向主项目中的资源授予 Vertex AI 访问权限

如需向主项目中的 Vertex AI 服务代理授予其他角色,请执行以下操作:

  1. 转到主项目对应的 Cloud Console 的 IAM 页面。

    转到 IAM 页面

  2. 选中包括 Google 提供的角色授权复选框。

  3. 确定要授予权限的服务代理,然后点击 铅笔图标。

    您可以过滤 Member:@gcp-sa-aiplatform-cc.iam.gserviceaccount.com 以查找 Vertex AI 服务代理。

  4. 向服务帐号授予所需角色并保存所做的更改。

向不同项目中的资源授予 Vertex AI 访问权限

当您在其他项目中使用数据源或目标时,您必须在该项目中授予 Vertex AI 服务帐号权限。当您启用 Vertex AI API 时,系统会自动创建 Vertex AI 服务帐号。

如需在其他项目中添加 Vertex AI 的权限,请执行以下操作:

  1. 转到主项目(您使用 Vertex AI 的项目)的 Cloud Console 的 IAM 页面。

    转到 IAM 页面

  2. 选中包括 Google 提供的角色授权复选框。

  3. 确定要授予相应权限的服务代理,并复制其电子邮件地址(在成员下方列出)。

    您可以过滤 Member:@gcp-sa-aiplatform-cc.iam.gserviceaccount.com 以查找 Vertex AI 服务代理。

  4. 将项目更改为需要授予权限的项目。

  5. 点击添加,并在新成员中输入电子邮件地址。

  6. 添加所有必需的角色,并点击保存

提供对 Google 表格的访问权限

如果您使用由 Google 表格提供支持的外部 BigQuery 数据源,则必须与 Vertex AI 服务帐号共享表格。当您启用 Vertex AI API 时,系统会自动创建 Vertex AI 服务帐号。

如需授权 Vertex AI 访问您的表格文件,请执行以下操作:

  1. 转到 Cloud Console 的 IAM 页面。

    转到 IAM 页面

  2. 查找名为 Vertex AI Service Agent 的服务帐号并复制其电子邮件地址(在成员下方列出)。

  3. 打开您的表格文件并与该地址共享。

后续步骤