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 の権限を示します。

チャンネルのメソッド名 必要な権限
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

ロール

次の表に、Live Stream API の IAM のロールと、各ロールに関連付けられている権限を示します。

Live Stream API のロール 権限
roles/livestream.viewer
  • livestream.channels.list
  • livestream.channels.get
  • livestream.events.list
  • livestream.events.get
  • livestream.inputs.list
  • livestream.inputs.get
roles/livestream.editor すべての roles/livestream.viewer 権限、および
  • livestream.channels.create
  • livestream.channels.delete
  • livestream.channels.update
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.events.create
  • livestream.events.delete
  • livestream.inputs.create
  • livestream.inputs.delete
  • livestream.inputs.update

ロールの詳細については、ロールについてをご覧ください。

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