使用 IAM 进行访问权限控制

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

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

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

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

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

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

本指南重点介绍访问 AI Platform Prediction 资源所需的角色和权限。如需详细了解这些资源本身访问其他 Google Cloud 资源所需的权限,请参阅 AI Platform 服务代理和自定义服务账号

基本角色

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

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

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

预定义角色

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

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

项目角色

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

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

角色名称 角色名称 技能
AI Platform Prediction Admin

roles/ml.admin

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

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

AI Platform Prediction Developer

roles/ml.developer

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

AI Platform Prediction Viewer

roles/ml.viewer

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

模型角色

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

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

角色名称 角色名称 技能
AI Platform Prediction Model Owner

roles/ml.modelOwner

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

AI Platform Prediction Model User

roles/ml.modelUser

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

作业和操作角色

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

权限和角色

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

Admin 角色

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

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

注意:从基本的项目 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

Developer 角色

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

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

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

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

  • 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 Prediction 资源的只读权限。

注意:旧版项目 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

Model Owner 角色

角色名称 说明 权限
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

Model User 角色

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

Job Owner 角色

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

拥有对特定作业资源的全部访问权限。作业所有者角色会自动授予创建该作业的用户。

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

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

Operation Owner 角色

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

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

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

预测所需的权限

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

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

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

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

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

方法所需的权限

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

方法 所需权限
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 Prediction 上部署经过训练的模型以进行预测时,您需要将保存的模型文件上传到 Cloud Storage。在 Cloud Storage 存储分区中,您的模型文件被存储为对象。由于要将经过训练的模型的文件保存在 Cloud Storage 存储分区中,您必须确保自己的 AI Platform Prediction 服务账号可以访问这些文件。

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

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

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

后续步骤