使用 IAM 控制访问权限

概览

Transcoder API 使用 Identity and Access Management (IAM) 进行访问权限控制。

您可以在项目级层配置 Transcoder API 的访问权限控制。例如,您可以向开发者授予列出和获取项目中所有作业的访问权限。

如需详细了解 IAM 及其功能,请参阅 IAM 文档。尤其应参阅管理 IAM 政策部分。

每种 Transcoder API 方法都要求调用者拥有必要的权限。如需了解详情,请参阅权限角色

权限

本部分汇总了 IAM 支持的 Transcoder API 权限。

所需权限

下表列出了与 Transcoder API 关联的 IAM 权限。

作业方法 所需权限
jobs.create 父级 Google Cloud 项目上的 transcoder.jobs.create 权限。
jobs.delete 父级 Google Cloud 项目上的 transcoder.jobs.delete 权限。
jobs.get 父级 Google Cloud 项目上的 transcoder.jobs.get 权限。
jobs.list 父级 Google Cloud 项目上的 transcoder.jobs.list 权限。
作业模板方法 所需权限
jobTemplates.create 父级 Google Cloud 项目上的 transcoder.jobTemplates.create 权限。
jobTemplates.delete 父级 Google Cloud 项目上的 transcoder.jobTemplates.delete 权限。
jobTemplates.get 父级 Google Cloud 项目上的 transcoder.jobTemplates.get 权限。
jobTemplates.list 父级 Google Cloud 项目上的 transcoder.jobTemplates.list 权限。

角色

下表列出了 Transcoder API IAM 角色,包括与每个角色关联的权限:

IAM 角色 权限

(roles/transcoder.viewer)

可查看所有 Transcoder 资源。

resourcemanager.projects.get

resourcemanager.projects.list

transcoder.jobTemplates.get

transcoder.jobTemplates.list

transcoder.jobs.get

transcoder.jobs.list

(roles/transcoder.admin)

拥有对所有转码器资源的完全访问权限。

resourcemanager.projects.get

resourcemanager.projects.list

transcoder.*

  • transcoder.jobTemplates.create
  • transcoder.jobTemplates.delete
  • transcoder.jobTemplates.get
  • transcoder.jobTemplates.list
  • transcoder.jobs.create
  • transcoder.jobs.delete
  • transcoder.jobs.get
  • transcoder.jobs.list

roles/ownerroles/editor 角色会授予与 roles/transcoder.admin 角色关联的权限。roles/viewer 角色会授予与 roles/transcoder.viewer 角色关联的权限。

roles/ownerroles/editorroles/viewer 角色也具有其他 Google Cloud 服务的权限。如需详细了解角色,请参阅了解角色

访问 Cloud Storage 和 Pub/Sub

默认情况下,Transcoder API 可以访问项目的所有 Cloud Storage 存储分区和 Pub/Sub 主题。当您创建第一个作业时,Transcoder API 使用以下命名惯例创建服务账号:

service-PROJECT_NUMBER@gcp-sa-transcoder.iam.gserviceaccount.com

PROJECT_NUMBER 是启用了 Transcoder API 的项目的编号。此服务账号会被授予 Transcoder Service Agent 角色,并有权执行以下操作:

  • 下载并将文件上传到项目的 Cloud Storage 存储分区
  • 向项目的 Pub/Sub 主题发布状态更新

限制访问

要限制此访问权限,请从服务账号中移除 Transcoder Service Agent 角色,并将其替换为更精细的访问权限。请按照以下步骤操作:

  1. 前往 Google Cloud 控制台中的 IAM 页面(权限标签页)。
  2. 找到具有 Transcoder Service Agent 角色的服务账号,然后选择修改按钮。
  3. 从服务账号中删除 Transcoder Service Agent 角色。
  4. 向服务账号授予对每个 Cloud Storage 存储桶的访问权限:
    1. 转到 Cloud Storage 浏览器页面。
    2. 点击一个存储桶。
    3. 选择权限标签页。
    4. 点击添加
    5. 新的主账号框中,输入服务账号的名称。
    6. 角色下,选择 Storage Object Admin
    7. 点击保存。Transcoder API 现在可以访问该存储桶。
  5. (可选)向服务账号授予对任何已配置的 Pub/Sub 主题的访问权限:
    1. 转到 Pub/Sub 主题页面。
    2. 点击一个主题。
    3. 选择权限标签页。
    4. 点击添加主账号
    5. 新的主账号框中,输入服务账号的名称。
    6. 角色下,选择 Pub/Sub Publisher
    7. 点击保存。Transcoder API 现在可以访问该主题。