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.clips.get

livestream.clips.list

livestream.events.get

livestream.events.list

livestream.inputs.get

livestream.inputs.list

livestream.locations.*

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

livestream.operations.get

livestream.operations.list

livestream.pools.get

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.delete
  • livestream.channels.get
  • livestream.channels.list
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.channels.update
  • livestream.clips.create
  • livestream.clips.delete
  • livestream.clips.get
  • livestream.clips.list
  • livestream.events.create
  • livestream.events.delete
  • livestream.events.get
  • livestream.events.list
  • livestream.inputs.create
  • livestream.inputs.delete
  • livestream.inputs.get
  • livestream.inputs.list
  • livestream.inputs.update
  • livestream.locations.get
  • livestream.locations.list
  • livestream.operations.cancel
  • livestream.operations.delete
  • livestream.operations.get
  • livestream.operations.list
  • livestream.pools.get
  • 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. サービス アカウントからライブ配信サービス エージェントのロールを削除します。
  4. 個々の Cloud Storage バケットのサービス アカウントにアクセス権を付与します。
    1. Cloud Storage ブラウザページに移動します。
    2. バケットをクリックします。
    3. [権限] タブを選択します。
    4. [追加] をクリックします。
    5. [新しいプリンシパル] フィールドに、サービス アカウントの名前を入力します。
    6. [ロール] で、[Storage オブジェクト管理者] を選択します。
    7. [保存] をクリックします。これで、Live Stream API でバケットにアクセスできるようになりました。