访问权限控制

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

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

  • 原初角色(Owner、Viewer 和 Editor)在所有 GCP 服务中通用。

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

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

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

原初角色

旧版 AI Platform IAM 角色基于在所有 GCP 服务中通用的原初角色(Owner、Viewer 和 Editor)。

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

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

预定义角色

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

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

项目角色

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

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

角色名称 角色名称 功能
AI Platform Admin

roles/ml.admin

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

注意:原初的项目 Editor 角色等同于 roles/ml.admin

AI Platform Developer

roles/ml.developer

可以创建训练和预测作业、模型与版本以及发送在线预测请求。

AI Platform Viewer

roles/ml.viewer

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

模型角色

AI Platform Model Owner 和 Model User 角色可以授予针对特定模型资源的不同权限。

如需与个人或服务共享模型,您可以向个人或服务授予 Model User 角色

角色称谓 角色名称 权限
AI Platform Model Owner

roles/ml.modelOwner

拥有模型及其版本的完整访问权限。系统会将此角色自动授予给创建模型的用户。

AI Platform Model User

roles/ml.modelUser

拥有读取模型及其版本并将其用于预测的权限。通过授予此角色,您可以轻松共享特定模型。

作业和操作角色

与模型所有者角色类似,作业和操作资源级层的所有者角色也会自动授予给创建作业或操作的用户。这些角色允许用户完全控制自己创建的任何作业或操作。如需了解详情,请参阅作业和操作角色的权限

权限和角色

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

管理员角色

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

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

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

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • 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

开发者角色

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

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

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

建议:授予开发者对 AI Platform 日志的只读权限,以便其排查问题

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • 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 资源的只读权限。

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

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

模型所有者角色

角色名称 说明 权限
roles/ml.modelOwner 对模型及其版本拥有完整访问权限。此角色会自动授予给创建该模型的用户。
  • 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

模型用户角色

角色名称 说明 权限
roles/ml.modelUser 拥有读取模型及其版本并将其用于预测的权限。
  • ml.models.get
  • ml.models.predict
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict

作业所有者角色

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

对特定作业资源的所有权限拥有完整访问权限。系统会将 Job Owner 角色自动授予创建作业的用户。

例如,拥有项目 AI Platform Developer 角色的用户可以创建作业、列出所有作业以及获取给定项目中的所有作业。此外,开发者仅有权取消自己创建的作业。

  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.jobs.cancel

操作所有者角色

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

对特定操作资源的所有权限拥有完整访问权限。如果用户在创建版本或模型时,间接创建了任何操作,则系统会自动将这些操作的操作所有者角色授予该用户,这样用户始终可以获取和取消自己的操作。

  • ml.operations.get
  • ml.operations.cancel

训练和预测所需的权限

为方便起见,下表汇总了训练和预测需要的具体权限:

任务 所需权限
训练
  • ml.jobs.create
批量预测
  • ml.jobs.create
  • ml.models.predict*
  • ml.versions.predict*

注意:您可以通过指定 Google Cloud Storage 中所保存模型的位置,创建不使用已部署版本的批量预测作业。只需 ml.jobs.create 权限,即可创建此类批量预测作业。

要创建使用已部署版本的批量预测作业,您还需要 ml.models.predictml.versions.predict 权限,但不需要同时具备两者。

在线预测
  • ml.models.predict
  • ml.versions.predict

各种方法所需的权限

为方便起见,本部分列出了调用 AI Platform 中的各个方法所需的权限:

方法 所需权限
projects.getConfig ml.projects.getConfig
projects.jobs.cancel ml.jobs.cancel
projects.jobs.create ml.jobs.create

注意:要创建使用已部署版本的批量预测作业,您还需要 ml.models.predictml.versions.predict 权限,但不需要同时具备这两种权限。

projects.jobs.get ml.jobs.get
projects.jobs.list ml.jobs.list
projects.models.create ml.models.create
projects.models.delete ml.models.delete
projects.models.get ml.models.get
projects.models.list ml.models.list
projects.models.versions.create ml.versions.create
projects.models.versions.delete ml.versions.delete
projects.models.versions.get ml.versions.get
projects.models.versions.list ml.versions.list
projects.models.versions.setDefault ml.models.update
projects.operations.cancel ml.operations.cancel
projects.operations.get ml.operations.get
projects.operations.list ml.operations.list

存储模型时所需的权限

在 AI Platform 上部署经过训练的模型以进行预测时,您需要将保存的模型文件上传到 Cloud Storage。在 Cloud Storage 存储分区中,您的模型文件被存储为对象。由于要将经过训练的模型的文件保存在 Cloud Storage 存储分区中,您必须确保自己的 AI Platform 服务帐号可以访问这些文件。

您可以向您的 AI Platform 服务帐号授予 Cloud Storage IAM 角色,该角色应至少包含以下权限:

任务 所需权限 说明
预测 storage.buckets.list 允许您的 AI Platform 项目在 Cloud Storage 存储分区中查找模型文件。
预测 storage.objects.get 允许您的 AI Platform 项目在 Cloud Storage 存储分区中读取模型文件。

请参阅如何为 AI Platform 配置 Cloud Storage 权限

后续步骤