ストリーミングドメインでは、URL 署名、リファラーベースのホットリンク保護、IP アドレスのブラックリストとホワイトリスト、プロトコル禁止、リージョンブロッキング、リモート認証など、複数のアクセス制御ポリシーを使用して、不正な使用やアクセスを防止します。これらのポリシーにより、ライブストリーミングサービスのセキュリティとユーザーエクスペリエンスが向上します。ビジネスやセキュリティのニーズに合わせてポリシーを選択・設定し、ライブリソースを保護し、信頼性の高い運用を確保してください。
概要
ストリーミングドメインを保護し、不正使用を防止するために、いくつかのアクセス制御ポリシーを実装できます。それぞれが異なる保護レイヤーを提供します。
URL 署名:暗号署名を使用して各リクエストの信頼性を検証します。リファラーベースの方法よりも強力な保護を提供します。
リファラーベースのホットリンク保護:カスタムのブラックリストまたはホワイトリストを使用してアクセスを制御し、再生リクエストを許可または拒否して、ライブコンテンツを保護します。
IP アドレスのブラックリストとホワイトリスト:特定の IP アドレスからのアクセスを制限または許可します。
プロトコル禁止:ドメインの再生プロトコルを制限します。有効にすると、禁止されたプロトコルを使用する再生 URL は拒否されます。
リージョンブロッキング:リージョンのブラックリストまたはホワイトリストを指定して、ストリーミングドメインへのアクセスを管理します。
リモート認証:ユーザーリクエストを独自の認証サーバーに転送して検証し、柔軟で安全なアクセス制御レイヤーを追加します。
URL 署名
仕組み
URL 署名機能は、ApsaraVideo Live とお客様のビジネスサーバー間で認証を連携させ、ライブストリームリソースを不正アクセスから保護します。
お客様のビジネスサーバーが、認証情報を含む署名付き URL を生成します。
ユーザーは、署名付き URL を使用して ApsaraVideo Live サービスにアップストリーミングまたは再生リクエストを送信します。
ApsaraVideo Live のエッジノードが署名付き URL 内の認証情報を検証し、有効なリクエストを処理し、無効なリクエストを拒否します。
ApsaraVideo Live がリクエスト URL を認証した後、URL 内の特殊文字 (例:= や +) はエスケープされます。
URL 署名のユースケース、署名付き URL の構造、および認証の仕組みの詳細については、「署名付きアップストリーミング URL とストリーミング URL」をご参照ください。
URL 署名の設定
- ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
URL 署名 タブをクリックし、設定の変更 をクリックします。
説明初めてドメイン名を追加する際、[URL 署名] はデフォルトで有効になっています。この機能が有効な場合にのみ、設定の変更 が可能です。
URL 署名パラメーターを設定し、OK をクリックします。

次の表にパラメーターを示します。
パラメーター
説明
認証タイプ
ApsaraVideo Live のストリーミングドメインは、オリジンリソースを保護するためにタイプ A 認証のみをサポートしています。
説明無効な URL 署名リクエストは 403 エラーを返します。署名を再計算する必要があります。
MD5 計算エラー
例:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beタイムスタンプエラー
例:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
プライマリキー
ドメイン名を追加すると、コンソールはランダムにプライマリキーを生成します。左側のナビゲーションバーで ドメイン管理 を選択し、設定したいドメイン名を選択して をクリックすると、URL 署名ページでプライマリキーを表示できます。カスタムのプライマリキーを入力することもできます。
セカンダリキー
カスタムのセカンダリキーを入力します。
説明プライマリキーとセカンダリキーは同じ認証権限を持ちます。セカンダリキーは主に、スムーズなキーのローテーションのために使用されます。
プライマリキーを変更すると、古いキーで生成された署名付き URL は無効になります。キーのローテーション中にサービスが中断されるのを防ぐため、新しいプライマリキーを設定する前に、現在のプライマリキーをセカンダリキーのフィールドにコピーしてください。これにより、トランジション中にセカンダリキーがリクエストの認証を継続できます。
有効期間
署名付き URL を使用してアップストリーミングまたは再生リクエストを開始できる期間です。アップストリーミングと再生は長時間接続を使用します。有効期間が過ぎてもアクティブな接続は終了しませんが、期限切れの URL を使用した新しいリクエストは失敗します。新しいドメインのデフォルトの有効期間は 1 日 (1,440 分) です。最小 1 分から上限なしでカスタムの有効期間を設定できます。
URL 署名の無効化
URL 署名 を無効にする前に、不正なトラフィックのリスクを理解し、免責事項同意書に署名してください。
URL 認証 を無効にすると、有効期限のないアップストリーミング URL またはストリーミング URL を生成できます。
URL 署名 タブで、免責事項の確認 リンクをクリックします。
免責事項 ダイアログボックスで、チェックボックスを選択し、免責事項 をクリックします。
免責事項同意書に署名した後、OK をクリックします。
署名付き URL スイッチをオフにします。この機能が無効になると、認証キーを設定して URL を暗号化できなくなります。
リファラーベースのホットリンク保護
仕組み
リファラーベースのホットリンク保護は、HTTP プロトコルの Referer ヘッダーを使用してリクエストのソースを識別します。ブラックリストまたはホワイトリストをサポートしています。ApsaraVideo Live のエッジノードは、設定されたリストに基づいて視聴者のリクエストをフィルタリングします。ルールに一致するリクエストにはアクセスが許可され、それ以外は 403 応答を受け取ります。
これはオプション機能であり、デフォルトでは無効になっています。
ブラックリストとホワイトリストは相互排他的です。一度に有効にできるのはどちらか一方のみです。
この機能を設定すると、ApsaraVideo Live は自動的にワイルドカードドメインをサポートします。たとえば、
example.comと入力すると、ルールは*.example.comに適用され、そのすべてのサブドメインをカバーします。空の Referer フィールドを持つリクエストを許可するかどうかを選択できます。これにより、ブラウザのアドレスバーからリソース URL への直接アクセスが許可されます。
モバイルクライアントは、しばしばリファラーを取得できません。デフォルトでは、空のリファラーを持つリクエストは許可されます。空のリファラーリクエストを許可しない場合は、ApsaraVideo Player SDK を使用してモバイルクライアントにリファラーを設定できます。
空のリファラーリクエストを許可しない場合は、HTTPS の有効化 を設定し、HTTP から HTTPS への強制リダイレクト (HTTP -> HTTPS) を有効にする必要があります。一部のブラウザは、HTTP リソースに対する HTTPS リクエストを処理する際に Referer ヘッダーを削除するため、アクセスが失敗する原因となります。
操作手順
- ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
Referer ホットリンク保護 タブをクリックし、Referer ホットリンク保護 スイッチをオンにします。

Referer タイプ と リファラ を設定し、OK をクリックします。

次の表に、リファラーベースのホットリンク保護のタイプを示します。
タイプ
説明
ブラックリスト
ブラックリスト上のドメインはリソースにアクセスできません。
ホワイトリスト
ホワイトリスト上のドメインのみがリソースにアクセスできます。他のすべてのドメインはブロックされます。
IP ブラックリストとホワイトリスト
仕組み
IP アドレスをブラックリストに追加して、ストリーミングドメインへのアクセスをブロックします。
IP アドレスをホワイトリストに追加して、その IP アドレスのみがストリーミングドメインにアクセスできるようにします。
IP アドレスのブラックリストとホワイトリストは、どちらも IPv6 アドレスをサポートしています。IPv6 アドレスを入力する際は、
2001:DB8:0:23:8:800:200C:417Aや2001:0DB8:0000:0023:0008:0800:200C:417Aのように大文字を使用する必要があります。2001:0DB8::0008:0800:200C:417Aのような省略形の IPv6 形式はサポートされていません。CIDR 表記を使用して、IP アドレス範囲をブラックリストとホワイトリストに追加できます。たとえば、
192.168.0.0/24は、サブネットマスクの最初の 24 ビットがネットワークアドレスに使用され、残りの 8 ビット (32 - 24) がホストアドレスに使用されることを示します。このサブネットには 2^8 - 2 = 254 のホストを含めることができます。したがって、192.168.0.0/24は192.168.0.1から192.168.0.254までの IP アドレス範囲を表します。
操作手順
- ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
IP ブラックリストまたはホワイトリスト タブをクリックし、IP ブラックリストまたはホワイトリスト スイッチをオンにします。

リストタイプ と ルール を設定し、OK をクリックします。

タイプ
説明
ブラックリスト
ブラックリスト上の IP アドレスはリソースにアクセスできません。
ホワイトリスト
ホワイトリスト上の IP アドレスのみがリソースにアクセスできます。他のすべての IP アドレスはブロックされます。
プロトコル禁止
仕組み
プロトコル禁止を使用すると、プライマリドメインとサブドメインを含むストリーミングドメインに対して、プロトコルレベルで再生をブロックできます。この機能を有効にすると、指定されたプロトコルを使用する再生 URL はブロックされます。
コンソールを使用するだけでなく、BatchSetLiveDomainConfigs API オペレーションを呼び出すこともできます。これを行うには、Functions パラメーターで alilive レコードを渡します。詳細については、「BatchSetLiveDomainConfigs」をご参照ください。
操作手順
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
プロトコルの禁止 タブをクリックし、ブロックしたいプロトコルを選択して、それぞれのスイッチをオンにします。

リージョンブロッキング
仕組み
リージョンブロッキングは、クライアントリクエストの地理的な場所を特定し、特定のリージョンからのアクセスをブロックするか、指定されたリージョンからのアクセスのみを許可することができます。これは、悪意のあるリクエストを軽減したり、コンテンツ配信権を強制したりするのに役立ちます。
リージョンブロッキングは、HLS、RTMP、FLV、および RTS 再生プロトコルでサポートされています。
同じリージョンに対してドメインレベルとストリームレベルの両方のリージョンブロッキングを設定した場合、ブラックリストの設定が優先されます。たとえば、ドメインレベルのホワイトリストとストリームレベルのブラックリストを設定した場合、ストリームレベルのブラックリストが適用されます。ドメインレベルのブラックリストとストリームレベルのホワイトリストを設定した場合、ドメインレベルのブラックリストが適用されます。
ドメイン名のリージョンブロック と ライブストリームリージョンブロック の両方を設定できます。ホワイトリストとブラックリストの間に競合が存在する場合、ブラックリストが優先され、どのリージョンがブロックされるかが決定されます。
ドメインレベルのリージョンブロッキング
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
リージョンのブロック タブで、ドメイン名のリージョンブロック スイッチをオンにします。ブロックタイプ を選択し、アクセス禁止リージョン を指定します。
パラメーター
説明
ブロックタイプ
ブラックリスト:ブラックリスト上のリージョンは、ストリーミングドメイン下のどのリソースにもアクセスできません。
ホワイトリスト:ホワイトリスト上のリージョンのみがストリーミングドメイン下のリソースにアクセスできます。他のすべてのリージョンはブロックされます。
ブラックリストとホワイトリストは相互排他的です。一度に有効にできるのはどちらか一方のみです。
アクセス禁止リージョン
ブラックリストまたはホワイトリストに含めるリージョン。
OK をクリックして設定を保存します。
ストリームレベルのリージョンブロッキング
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
リージョンのブロック タブをクリックし、[ストリームレベルのリージョンブロッキング] セクションで ブロックの追加 をクリックします。

パラメーター
説明
AppName
ライブストリームのアプリケーション名。
説明AppName は最大 256 文字で、数字、大文字と小文字のアルファベット、ハイフン (-)、アンダースコア (_)、等号 (=) を含めることができます。ブロッキングルールが有効になるには、ライブストリーム URL の AppName と一致する必要があります。
StreamName
ライブストリームのストリーム名。
説明StreamName は最大 256 文字で、数字、大文字と小文字のアルファベット、ハイフン (-)、アンダースコア (_)、等号 (=) を含めることができます。ブロッキングルールが有効になるには、ライブストリーム URL の StreamName と一致する必要があります。
ブロッキングタイプ
ブラックリスト:ブラックリスト上のリージョンの視聴者は、指定されたストリームにアクセスできません。
ホワイトリスト:ホワイトリスト上のリージョンの視聴者のみが、指定されたストリームにアクセスできます。
説明ブラックリストとホワイトリストは相互排他的です。一度に有効にできるのはどちらか一方のみです。
リージョン
ブラックリストまたはホワイトリストに含めるリージョン。
有効期限
ルールが失効する時刻。デフォルトでは、ルールは 7 日間有効ですが、必要に応じて調整できます。
OK をクリックして設定を保存します。
ストリームレベルのリージョンブロッキングルールのリストを表示します。ルールを設定した後、リストを更新してステータスを確認できます。リストタイプ、AppName、または StreamName でリストをフィルタリングできます。
リモート認証
仕組み
リモート認証と URL 署名はどちらもライブストリームリソースを不正アクセスから保護しますが、技術的な実装が異なります。
URL 署名:ライブセンターで認証ルールを設定し、その後、認証データの交換全体を処理します。
リモート認証:専用の認証サーバーを維持します。リクエストが受信されると、ライブセンターはそれを検証のためにお客様のサーバーに転送します。お客様は認証サーバーの構築と管理を担当します。リモート認証は HLS プロトコルをサポートしていません。
リモート認証のデータフローは次のとおりです。
ステップ | インタラクション |
① | ユーザーは、認証パラメーターを含むリソースアクセスリクエスト (POST) をライブセンターに送信します。 |
② | ライブセンターはユーザーリクエストを受信し、直接または指定されたルールに基づいて処理した後、POST メソッドを使用して認証サーバーに転送します。 |
③ | 認証サーバーはリクエスト内のパラメーターを検証し、認証結果を決定し、POST 応答を介してライブセンターに返します。 |
④ | ライブセンターは認証サーバーからの POST 応答を受信し、結果に基づいてアクションを実行し、対応するデータをユーザーに返します。
|
操作手順
- ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。
設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
リモート認証 タブをクリックし、リモート認証 スイッチをオンにして、パラメーターを設定します。
説明リモート認証が有効な場合、すべてのユーザーリクエストが処理のためにお客様の認証サーバーに転送されます。大量のリクエストが予想される場合は、認証サーバーのパフォーマンスと容量を考慮してください。
パラメーター
説明
認証サーバーアドレス
認証サーバーの公開アクセス可能なアドレス。システムは入力されたアドレスの形式と値を検証します。固定 URL または変数連結で構築された URL を設定できます。
固定 URL:HTTP および HTTPS プロトコルをサポートします。値は
127.0.0.1またはlocalhostにはできません。例:http(s)://example.aliyundoc.com/auth
http(s)://192.0.2.1/auth
URL 変数の連結:変数を連結して認証 URL を生成できます。詳細については、「URL 変数の連結」をご参照ください。
リクエスト URL パラメーターをパススルーする
ユーザーのリクエスト URL からどのパラメーターを認証リクエストに含めるかを制御します。指定パラメーターをパススルーする、指定パラメーターをパススルーしない、またはパラメーターを渡さないことを選択できます。
説明指定パラメーターをパススルーする または 指定パラメーターをパススルーしない を選択した場合は、入力ボックスにパラメーターをカンマ (,) で区切って入力します。例:
key1,key2,key3。認証結果に対応するステータスコード
認証サーバーがライブセンターに返す HTTP ステータスコード。成功または失敗のステータスコードを定義できます。
認証成功のステータスコード:カスタムの成功ステータスコードを入力します。ライブセンターは、サーバーがこのコードを返した場合にのみリクエストを許可します。他のすべてのステータスコードはリクエストがブロックされる結果となります。
たとえば、成功コードを 200 に設定した場合、200 応答は認証成功を示します。
認証失敗のステータスコード:カスタムの失敗ステータスコードを入力します。ライブセンターは、サーバーがこのコードを返した場合にのみリクエストをブロックします。他のすべてのステータスコードはリクエストが許可される結果となります。
たとえば、失敗コードを 403 に設定した場合、403 応答は認証失敗を示します。
認証時間 (秒)
ライブセンターがリクエストを送信してから認証サーバーからの応答を待つ時間 (秒)。
0 から 30 までの整数を入力できます。
認証タイムアウトの再試行回数
指定された認証タイムアウトを超えた後、ライブセンターが認証サーバーへのリクエストを再試行する回数。すべての再試行が失敗した場合、システムは [タイムアウト後のアクション] で指定されたアクションを実行します。アクションは 認証済み または 拒否 に設定できます。
タイムアウト後のアクション
認証サーバーへの接続がタイムアウトした場合にライブセンターが実行するアクション。オプションは 認証済み と 拒否 です。
認証済み: ライブセンターはユーザーリクエストを許可します。
拒否:ライブセンターはユーザーリクエストを拒否し、403 などの失敗ステータスコードをユーザーに返します。
非同期認証
有効にすると、リモート認証の結果を待たずに再生がすぐに開始されます。認証が失敗した場合、接続は終了します。この機能は、同期認証による遅延を回避することで、初回フレーム表示時間を短縮できます。
OK をクリックして設定を保存します。
リモート認証を設定した後、リモート認証 タブに戻って設定を変更したり、機能を無効にしたりできます。
URL 変数の連結
変数を使用して、認証 URL を動的に生成できます。次の表に、利用可能な変数を示します。
タイプ | 説明 |
数値変数 |
たとえば、アップストリーミング URL が |
アルファベット変数 |
たとえば、アップストリーミング URL が |
カスタム変数 | カスタム変数はプレフィックス |
NGX 変数 | すべての 変数によって参照されるすべての値は、認証 URL が連結される際に URL エスケープ関数 |
ストリーム名変数 |
|
アップストリーミングまたはストリーム再生 URL が rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc の場合。
リモート認証サーバの URL は http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token} に設定されています。
実際の認証 URL は http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=*** となります。