使用 IAM 控管存取權

總覽

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

您可以在專案層級設定 Live Stream API 的存取控管機制,舉例來說,您可以授權開發人員列出及取得專案中的所有事件。

如需 IAM 和其功能的詳細說明,請參閱 IAM 說明文件。特別是管理 IAM 政策一節。

每種 Live Stream API 方法都會要求呼叫者具備必要權限,詳情請參閱「權限」和「角色」。

權限

本節概述 IAM 支援的 Live Stream API 權限。

所需權限

下表列出與 Live Stream API 相關的 IAM 權限。

資產方法名稱 所需權限
assets.create 父項位置的 livestream.assets.create,也就是特定 Google Cloud 專案和資料位置 的組合。
assets.delete 資產資源的 livestream.assets.delete
assets.get 資產資源的 livestream.assets.get
assets.list 父項位置的 livestream.assets.list,也就是特定專案和資料位置的組合。 Google Cloud
管道方法名稱 所需權限
channels.create 父項位置的 livestream.channels.create,也就是特定 Google Cloud 專案和資料位置的組合。
channels.delete 頻道資源的 livestream.channels.delete
channels.get 頻道資源的 livestream.channels.get
channels.list 父項位置的 livestream.channels.list,也就是特定 Google Cloud 專案和資料位置的組合。
channels.patch 頻道資源的 livestream.channels.update
channels.start 頻道資源的 livestream.channels.start
channels.stop 頻道資源的 livestream.channels.stop
Clips 方法名稱 所需權限
channels.clips.create 資源的父項管道 livestream.clips.create
channels.clips.delete 剪輯片段資源的 livestream.clips.delete
channels.clips.get 短片資源的 livestream.clips.get
channels.clips.list 資源的父項管道 livestream.clips.list
Events 方法名稱 所需權限
channels.events.create 資源的父項管道 livestream.events.create
channels.events.delete 活動資源的 livestream.events.delete
channels.events.get 活動資源的 livestream.events.get
channels.events.list 資源的父項管道 livestream.events.list
輸入方法名稱 所需權限
inputs.create 父項位置的 livestream.inputs.create,也就是特定 Google Cloud 專案和資料位置的組合。
inputs.delete 輸入資源的 livestream.inputs.delete 權限。
inputs.get 輸入資源的 livestream.inputs.get 權限。
inputs.list 父項位置的 livestream.inputs.list,也就是特定專案和資料位置的組合。 Google Cloud
inputs.patch 輸入資源的 livestream.inputs.update 權限。
集區方法名稱 所需權限
pools.get 集區資源的 livestream.pools.get
pools.patch 集區資源的 livestream.pools.patch

角色

下表列出 Live Stream API IAM 角色,包括與各角色相關聯的權限:

IAM 角色 權限

(roles/livestream.viewer)

具備直播資源的讀取權限。

livestream.assets.get

livestream.assets.list

livestream.channels.get

livestream.channels.list

livestream.channels.listEffectiveTags

livestream.channels.listTagBindings

livestream.clips.get

livestream.clips.list

livestream.dvrSessions.get

livestream.dvrSessions.list

livestream.events.get

livestream.events.list

livestream.inputs.get

livestream.inputs.list

livestream.inputs.listEffectiveTags

livestream.inputs.listTagBindings

livestream.locations.*

  • livestream.locations.get
  • livestream.locations.list

livestream.operations.get

livestream.operations.list

livestream.pools.get

livestream.pools.listEffectiveTags

livestream.pools.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.list

(roles/livestream.editor)

具備直播資源的完整存取權限。

livestream.*

  • livestream.assets.create
  • livestream.assets.delete
  • livestream.assets.get
  • livestream.assets.list
  • livestream.channels.create
  • livestream.channels.createTagBinding
  • livestream.channels.delete
  • livestream.channels.deleteTagBinding
  • livestream.channels.get
  • livestream.channels.list
  • livestream.channels.listEffectiveTags
  • livestream.channels.listTagBindings
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.channels.update
  • livestream.clips.create
  • livestream.clips.delete
  • livestream.clips.get
  • livestream.clips.list
  • livestream.dvrSessions.create
  • livestream.dvrSessions.delete
  • livestream.dvrSessions.get
  • livestream.dvrSessions.list
  • livestream.dvrSessions.update
  • livestream.events.create
  • livestream.events.delete
  • livestream.events.get
  • livestream.events.list
  • livestream.inputs.create
  • livestream.inputs.createTagBinding
  • livestream.inputs.delete
  • livestream.inputs.deleteTagBinding
  • livestream.inputs.get
  • livestream.inputs.list
  • livestream.inputs.listEffectiveTags
  • livestream.inputs.listTagBindings
  • livestream.inputs.update
  • livestream.locations.get
  • livestream.locations.list
  • livestream.operations.cancel
  • livestream.operations.delete
  • livestream.operations.get
  • livestream.operations.list
  • livestream.pools.createTagBinding
  • livestream.pools.deleteTagBinding
  • livestream.pools.get
  • livestream.pools.listEffectiveTags
  • livestream.pools.listTagBindings
  • livestream.pools.update

resourcemanager.projects.get

resourcemanager.projects.list

如要進一步瞭解角色,請參閱瞭解角色

存取 Cloud Storage

根據預設,Live Stream API 可存取專案的所有 Cloud Storage 值區。建立第一個直播活動時,Live Stream API 會使用下列命名慣例建立服務帳戶:

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

PROJECT_NUMBER 是指已啟用 Live Stream API 的專案編號。這個服務帳戶會取得 Live Stream 服務代理人角色,並具備下列權限:

  • 讀取專案的 Cloud Storage bucket 中的檔案
  • 將檔案上傳至專案的 Cloud Storage bucket
  • 刪除專案 Cloud Storage bucket 中的檔案
  • 列出專案 Cloud Storage bucket 中的檔案及其中繼資料

限制存取權

如要限制對 Cloud Storage bucket 的存取權,請從服務帳戶移除 Live Stream 服務代理角色,並改用更精細的存取權。步驟如下:

  1. 前往 Google Cloud 控制台的「IAM」頁面 (「權限」分頁)。
  2. 找出具有 Live Stream Service Agent 角色的服務帳戶,然後選取編輯按鈕。
  3. 從服務帳戶中刪除 Live Stream 服務代理角色。
  4. 為每個 Cloud Storage 值區授予服務帳戶存取權:
    1. 前往「Cloud Storage Browser」(Cloud Storage 瀏覽器) 頁面。
    2. 點選值區。
    3. 選取 [權限] 分頁標籤。
    4. 按一下「新增」。
    5. 在「新增主體」欄位中,輸入服務帳戶名稱。
    6. 在「角色」下方,選取「Storage 物件管理員」
    7. 按一下 [儲存]。Live Stream API 現在可以存取該 bucket。