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。
クリップ メソッド名 必要な権限
channels.clips.create リソースの親チャネルに対する livestream.clips.create。
channels.clips.delete クリップ リソースに対する livestream.clips.delete。
channels.clips.get クリップ リソースに対する livestream.clips.get。
channels.clips.list リソースの親チャネルに対する livestream.clips.list。
イベント メソッド名 必要な権限
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 が有効になっているプロジェクトの番号です。このサービス アカウントにはライブ ストリーム サービス エージェントのロールが付与され、以下を行う権限があります。

  • プロジェクトの Cloud Storage バケット内のファイルを読み取る
  • ファイルをプロジェクトの Cloud Storage バケットにアップロードする
  • プロジェクトの Cloud Storage バケット内のファイルを削除する
  • プロジェクトの Cloud Storage バケット内のファイルとそのメタデータを一覧表示する

アクセスの制限

Cloud Storage バケットへのアクセスを制限するには、サービス アカウントからライブ ストリーム サービス エージェントのロールを削除し、より細分化されたアクセス権に置き換えます。手順は次のとおりです。

  1. Google Cloud コンソールで IAM ページ([権限] タブ)に移動します。
  2. ライブ ストリーム サービス エージェントのロールを持つサービス アカウントを探し、編集ボタンを選択します。
  3. サービス アカウントから Live Stream サービス エージェントのロールを削除します。
  4. 個々の Cloud Storage バケットのサービス アカウントにアクセス権を付与します。
    1. Cloud Storage ブラウザページに移動します。
    2. バケットをクリックします。
    3. [権限] タブを選択します。
    4. [追加] をクリックします。
    5. [新しいプリンシパル] フィールドに、サービス アカウントの名前を入力します。
    6. [ロール] で、[Storage オブジェクト管理者] を選択します。
    7. [保存] をクリックします。これで、Live Stream API でバケットにアクセスできるようになりました。