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
イベントのメソッド名 必要な権限
events.create リソースの親チャネルに対する livestream.events.create
events.delete イベント リソースに対する livestream.events.delete
events.get イベント リソースに対する livestream.events.get
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.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.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. [Add] をクリックします。
    5. [新しいプリンシパル] フィールドに、サービス アカウントの名前を入力します。
    6. [ロール] で、[Storage オブジェクト管理者] を選択します。
    7. [保存] をクリックします。これで、Live Stream API でバケットにアクセスできるようになりました。