概要
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 ロール | 権限 |
|---|---|
ライブ ストリーム閲覧者( ライブ ストリーム リソースに対する読み取りアクセス権。 |
|
ライブ ストリーム編集者( ライブ ストリーム リソースに対する完全アクセス権。 |
|
ロールの詳細については、ロールについてをご覧ください。
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 バケットへのこのアクセスを制限するには、サービス アカウントからライブ ストリーム サービス エージェントのロールを削除し、より細分化されたアクセス権に置き換えます。手順は次のとおりです。
- Google Cloud コンソールの [IAM] ページ([権限] タブ)に移動します。
- ライブ ストリーム サービス エージェントのロールを持つサービス アカウントを探し、編集ボタンを選択します。
- サービス アカウントからライブ配信サービス エージェントのロールを削除します。
- 個々の Cloud Storage バケットのサービス アカウントにアクセス権を付与します。
- Cloud Storage ブラウザページに移動します。
- バケットをクリックします。
- [権限] タブを選択します。
- [追加] をクリックします。
- [新しいプリンシパル] フィールドに、サービス アカウントの名前を入力します。
- [ロール] で、[Storage オブジェクト管理者] を選択します。
- [保存] をクリックします。これで、Live Stream API でバケットにアクセスできるようになりました。