使用 IAM 控管存取權

總覽

Transcoder API 會使用 Identity and Access Management (IAM) 控管存取權。

您可以在專案層級設定 Transcoder API 的存取權控管機制。舉例來說,您可以授予開發人員存取權,讓他們列出及取得專案中的所有工作。

如需 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 角色 權限

(roles/transcoder.viewer)

可查看所有轉碼器資源。

resourcemanager.projects.get

resourcemanager.projects.list

transcoder.jobTemplates.get

transcoder.jobTemplates.list

transcoder.jobTemplates.listEffectiveTags

transcoder.jobTemplates.listTagBindings

transcoder.jobs.get

transcoder.jobs.list

transcoder.jobs.listEffectiveTags

transcoder.jobs.listTagBindings

(roles/transcoder.admin)

具備所有轉碼器資源的完整存取權限。

resourcemanager.projects.get

resourcemanager.projects.list

transcoder.*

  • transcoder.jobTemplates.create
  • transcoder.jobTemplates.createTagBinding
  • transcoder.jobTemplates.delete
  • transcoder.jobTemplates.deleteTagBinding
  • transcoder.jobTemplates.get
  • transcoder.jobTemplates.list
  • transcoder.jobTemplates.listEffectiveTags
  • transcoder.jobTemplates.listTagBindings
  • transcoder.jobs.create
  • transcoder.jobs.createTagBinding
  • transcoder.jobs.delete
  • transcoder.jobs.deleteTagBinding
  • transcoder.jobs.get
  • transcoder.jobs.list
  • transcoder.jobs.listEffectiveTags
  • transcoder.jobs.listTagBindings

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 主題

限制存取權

如要限制這項存取權,請從服務帳戶中移除轉碼器服務代理角色,並以更精細的存取權取代。步驟如下:

  1. 前往 Google Cloud 控制台的「IAM」頁面 (「Permissions」分頁)。
  2. 找出具備轉碼器服務代理人角色的服務帳戶,然後選取「編輯」按鈕。
  3. 從服務帳戶中刪除轉碼器服務代理程式角色。
  4. 為每個個別 Cloud Storage 值區授予服務帳戶存取權:
    1. 前往「Cloud Storage Browser」(Cloud Storage 瀏覽器) 頁面。
    2. 按一下值區。
    3. 選取 [權限] 分頁標籤。
    4. 按一下「新增」。
    5. 在「新增主體」方塊中,輸入服務帳戶的名稱。
    6. 在「角色」下方,選取「Storage 物件管理員」
    7. 按一下 [儲存]。Transcoder API 現在可以存取儲存體。
  5. (選用) 將存取權授予服務帳戶,以便存取任何已設定的 Pub/Sub 主題:
    1. 前往「Pub/Sub 主題」頁面。
    2. 按一下特定主題。
    3. 選取 [權限] 分頁標籤。
    4. 按一下「新增主體」
    5. 在「新增主體」方塊中,輸入服務帳戶的名稱。
    6. 在「角色」下方,選取「Pub/Sub 發布者」
    7. 按一下 [儲存]。Transcoder API 現在可存取主題。