使用 IAM 进行访问权限控制

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

AI Platform Vizier 中可以使用三种类型的 IAM 角色:

  • 基本角色(Owner、Viewer、Editor)在所有 Google Cloud 服务中通用。

  • 预定义的 AI Platform Vizier 角色,使您可以在项目级层和模型级层对 AI Platform Vizier 资源进行精细的访问权限控制。

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

本指南将着重介绍预定义的 AI Platform Vizier 角色、其常见用法和关联的权限

基本角色

旧版 AI Platform Vizier IAM 角色基于所有 GCP 服务通用的基本角色:Owner、Viewer、Editor。

旧版项目 Editor 角色等同于 AI Platform Vizier Admin 角色

旧版项目 Viewer 角色不仅授予用户与 AI Platform Vizier Viewer 角色相同的权限,还授予用户发送在线预测请求的权限。使用 AI Platform Vizier Viewer 角色的优势在于,用户仅可获取 AI Platform Vizier 资源的只读权限。

预定义角色

预定义角色可以授予一组相关权限。 AI Platform Vizier 将为您的项目以及单个模型、作业和操作提供预定义角色。

如需查看每个角色的完整权限列表,请点击角色名称。

项目角色

AI Platform Vizier Admin、Developer 和 Viewer 角色可以在项目级层授予不同级别的资源访问权限。

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

角色名称 角色名称 权限
AI Platform Vizier Admin

roles/ml.admin

拥有 AI Platform Vizier 项目及其作业、操作、模型、版本、研究和试验的完全控制权。

注意:基本项目角色 Editor 等效于 roles/ml.admin

AI Platform Vizier Developer

roles/ml.developer

创建研究和试验。创建训练和预测作业、模型和版本。发送在线预测请求。

AI Platform Vizier Viewer

roles/ml.viewer

拥有 AI Platform Vizier 资源的只读权限。

权限和角色

请参阅本部分内容,了解各 AI Platform Vizier预定义角色可授予的完整权限列表。如果这些预定义角色无法满足您的需求,请参考此部分内容以创建专属自定义角色

Admin 角色

角色名称 说明 权限
roles/ml.admin AI Platform Vizier Admin

拥有 AI Platform Vizier 项目及其作业、操作、模型、版本、研究和试验的完全访问权限。

注意:从基本的项目 Editor 角色迁移至此角色相当简单。如果您以前使用的是在项目级分配的基本 Editor 角色,可以使用此 roles/ml.admin 角色向用户授予完全相同的一组权限。

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.studies.create
  • ml.studies.delete
  • ml.studies.get
  • ml.studies.list
  • ml.trials.create
  • ml.trials.update
  • ml.trials.delete
  • ml.trials.get
  • ml.jobs.create
  • ml.jobs.list
  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.jobs.setIamPolicy
  • ml.jobs.cancel
  • ml.operations.list
  • ml.operations.get
  • ml.operations.cancel
  • ml.models.create
  • ml.models.list
  • ml.models.get
  • ml.models.setIamPolicy
  • ml.models.getIamPolicy
  • ml.models.predict
  • ml.models.delete
  • ml.models.update
  • ml.versions.create
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict
  • ml.versions.delete

Developer 角色

角色名称 说明 权限
roles/ml.developer

拥有创建研究和试验、创建训练和预测作业、模型与版本以及发送在线预测请求的权限。

注意:开发者拥有其创建的所有作业的 ml.jobs.cancelml.jobs.update 权限,因为在创建作业时,系统将自动授予他们 AI Platform Vizier Job Owner 角色

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.studies.create
  • ml.studies.delete
  • ml.studies.get
  • ml.studies.list
  • ml.trials.create
  • ml.trials.update
  • ml.trials.delete
  • ml.trials.get
  • ml.jobs.create
  • ml.jobs.list
  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.operations.list
  • ml.operations.get
  • ml.models.create
  • ml.models.list
  • ml.models.get
  • ml.models.getIamPolicy
  • ml.models.predict
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict

Viewer 角色

角色名称 说明 权限
roles/ml.viewer

拥有对特定项目的 AI Platform Vizier 资源的只读权限。

注意:旧版项目 Viewer 角色不仅授予用户与 roles/ml.viewer 角色相同的权限,还授予发送在线预测请求的权限。

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.studies.get
  • ml.studies.list
  • ml.trials.get
  • ml.jobs.list
  • ml.jobs.get
  • ml.operations.list
  • ml.operations.get
  • ml.models.list
  • ml.models.get
  • ml.versions.list
  • ml.versions.get

将授予的访问权限限于 AI Platform Vizier

除了对 AI Platform Vizier 的访问权限之外,AI Platform Vizier 角色还可以授予对 AI Platform Training 和 AI Platform Prediction 的范围权限。如需仅授予对 AI Platform Vizier 资源的访问权限,请创建具有所需权限的自定义角色

相关方法及其各自针对 AI Platform Vizier 的权限如下:

资源 API 方法 权限
研究 projects.locations.studies.create ml.studies.create
projects.locations.studies.delete ml.studies.delete
projects.locations.studies.get ml.studies.get
projects.locations.studies.list ml.studies.list
试用 projects.locations.studies.trials.suggest ml.trials.update
projects.locations.studies.trials.create ml.trials.create
projects.locations.studies.trials.delete ml.trials.delete
projects.locations.studies.trials.addMeasurement ml.trials.update
projects.locations.studies.trials.stop ml.trials.update
projects.locations.studies.trials.complete ml.trials.update
projects.locations.studies.trials.get ml.trials.get
projects.locations.studies.trials.checkEarlyStoppingState ml.trials.get
projects.locations.studies.trials.list ml.trials.get

后续步骤