ストリーミングドメインは、URL 署名、リファラーベースのホットリンク保護、IP アドレスのブラックリストとホワイトリスト、プロトコルの禁止、リージョンブロッキング、リモート認証など、さまざまなアクセス制御ポリシーを実装して、不正アクセスと違法な使用を効果的に防止し、ライブストリーミングサービスのセキュリティとユーザーエクスペリエンスを向上させます。ユーザーは、ビジネスとセキュリティの要件に基づいて適切なアクセス制御ポリシーを選択および構成し、ライブストリーミングリソースのセキュリティと安定した運用を確保できます。
概要
ストリーミングドメインのアクセス制御は、リソースのセキュリティを確保し、不正使用を防止するための重要な手段であり、主に次の方法が含まれます。
URL 署名: URL 署名は、リファラーベースのホットリンク保護では完全に保護できない問題を効果的に防ぎ、各リクエストの正当性を保証します。
リファラーベースのホットリンク保護: リファラーベースのホットリンク保護を通じてカスタムのブラックリスト/ホワイトリストとルールコンテンツを構成することにより、再生リクエストを許可または拒否して、ライブストリーミングコンテンツを保護できます。
IP アドレスのブラックリストとホワイトリスト: IP アドレスのブラックリストとホワイトリストは、特定の IP アドレスからのアクセスを制限または許可し、訪問者の ID の識別とフィルタリングを可能にします。
プロトコルの禁止: 現在のドメインの再生プロトコルを制限することにより、有効にすると、そのドメイン下の対応する再生プロトコルは使用できなくなり、禁止されたプロトコルによって生成された再生アドレスリクエストは拒否されます。
リージョンブロッキング: 再生リージョン管理構成を通じて、再生リージョンのブラックリストまたはホワイトリストを指定して、現在のドメインの再生リージョンを管理できます。
リモート認証: リモート認証は、ユーザーリクエストを指定された認証サーバーに転送して検証できるため、アクセス制御の柔軟性とセキュリティがさらに向上します。
URL 署名
しくみ
ApsaraVideo Live は、お客様のライブストリーミングサーバーと連携して URL 署名を実装し、より安全で信頼性の高い方法でライブストリーミングリソースをホットリンクから保護します。
ユーザーのライブストリーミングサーバーは、認証情報を含む署名付き URL を提供します。
アップストリーミングユーザーまたはストリーミングユーザーは、署名付き URL を使用して ApsaraVideo Live にリクエストを送信します。
ApsaraVideo Live は、署名付き URL の認証情報を検証して、リクエストが有効かどうかを判断します。 ApsaraVideo Live は有効なリクエストを処理し、無効なリクエストを拒否します。
リクエスト URL が ApsaraVideo Live によって認証されると、= や + などの URL 内の特殊文字はエスケープされます。
URL 署名のシナリオ、構成、原則の詳細については、「アップストリーミング URL とストリーミング URL の認証」をご参照ください。
URL 署名の構成
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン] をクリックします。 ドメイン管理 ページが表示されます。
構成するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
をクリックします。
URL 認証 タブをクリックし、設定の変更 をクリックします。
説明ドメイン名を初めて追加すると、URL 署名はデフォルトで有効になります。 URL 署名が有効になっている場合にのみ、構成を [変更] できます。
URL 署名を構成し、OK をクリックします。

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

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

次の表に、リファラーベースのホットリンク保護のタイプを示します。
タイプ
説明
ブラックリスト
ブラックリストに含まれるドメイン名からのリクエストは、リソースにアクセスできません。
ホワイトリスト
ホワイトリストに含まれるドメイン名からのリクエストのみがリソースにアクセスできます。
IP アドレスのブラックリストとホワイトリスト
しくみ
IP アドレスのブラックリストを構成すると、ブラックリストに含まれる IP アドレスは高速化ドメイン名にアクセスできなくなります。
IP アドレスのホワイトリストを構成すると、ホワイトリストに含まれる IP アドレスのみが高速化ドメイン名にアクセスできます。
IP アドレスのブラックリストとホワイトリストは、IPv6 アドレスをサポートしています。 IPv6 アドレスの文字は大文字にする必要があります。例: 2001:DB8:0:23:8:800:200C:417A および 2001:0DB8:0000:0023:0008:0800:200C:417A。 2 つのコロングル記号 (::) を使用して IPv6 アドレスを短縮することはできません。たとえば、2001:0DB8::0008:0800:200C:417A は無効です。
IP アドレスのブラックリストとホワイトリストは、CIDR ブロックをサポートしています。たとえば、192.168.0.0/24 CIDR ブロックでは、/24 はサブネットマスクの最初の 24 ビットがネットワークビットであることを示します。残りの 8 ビットはホストビットです。ホストビットの数は、次の式に基づいて計算されます。 32 - 24 = 8。サブネットは最大 254 のホストを収容できます。ホストの数は、次の式に基づいて計算されます。 2^8 - 2 = 254。したがって、192.168.0.0/24 は、192.168.0.1 から 192.168.0.254 までの IP アドレスを示します。
手順
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン] をクリックします。 ドメイン管理 ページが表示されます。
構成するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
を選択します。
IP ブラックリストまたはホワイトリスト タブをクリックし、IP ブラックリストまたはホワイトリスト をオンにします。

リストタイプ と ルール を構成し、[OK] をクリックします。

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

リージョンブロッキング
しくみ
リージョンブロッキング機能は、クライアントアクセスリクエストのソースリージョンを識別し、特定のリージョンからのアクセスをブロック、または特定のリージョンからのアクセスのみを許可することで、特定のリージョンからの悪意のあるリクエストやコンテンツ配信の著作権などの問題を解決します。
ストリーミングの HTTP ライブストリーミングプロトコル (HLS)、リアルタイムメッセージングプロトコル (RTMP)、Flash Video (FLV)、およびリアルタイムストリーミング (RTS) プロトコルがサポートされています。
リージョンブロッキングは、ドメイン名レベルまたはストリームレベルで構成できます。ドメインレベルのホワイトリストとストリームレベルのブラックリストにリージョンを追加すると、そのリージョンはストリームレベルでブロックされます。ドメインレベルのブラックリストとストリームレベルのホワイトリストにリージョンを追加すると、そのリージョンはドメイン名レベルでブロックされます。
[ドメインレベルのリージョンブロッキング] と [ストリームレベルのリージョンブロッキング] の両方を同時に構成できます。2 つのブラックリストとホワイトリストの間に競合がある場合、構成されたブラックリストがリージョンへのアクセスのブロックに優先されます。
ドメインレベルのリージョンブロッキングを構成する
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。ドメイン管理 ページが表示されます。
構成するストリーミングドメインを見つけ、「アクション」列の ドメイン設定 をクリックします。
を選択します。
[リージョンブロッキング] タブで、[ドメインレベルのリージョンブロッキング] スイッチをオンにし、[ブロッキングタイプ] と [ブロックされたリージョン] を選択します。
パラメーター
説明
ブロッキングタイプ
ブラックリスト: ブラックリストに含まれるリージョンからのすべてのリクエストは、ストリーミングドメインのリソースへのアクセスがブロックされます。
ホワイトリスト: ホワイトリストに含まれるリージョンからのリクエストのみが、ストリーミングドメインのリソースへのアクセスを許可されます。
ブラックリストとホワイトリストは相互排他です。一度に有効になるのはどちらか一方だけです。
ブロックされたリージョン
ブラックリストまたはホワイトリストにリージョンを追加します。
[OK] をクリックして構成を完了します。
ストリームレベルのリージョンブロッキングを構成する
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。ドメイン管理 ページが表示されます。
構成するストリーミングドメインを見つけ、「アクション」列の ドメイン設定 をクリックします。
を選択します。
[リージョンブロッキング] タブをクリックし、ストリームレベルのリージョンブロッキングの下にある [追加] をクリックします。

パラメーター
説明
AppName
ライブストリームが属するアプリケーションの名前。
説明名前は最大 256 文字で、数字、文字、ハイフン (-)、アンダースコア (_)、および等号 (=) を含めることができます。ブロッキングルールは、このパラメーターの値がストリーミング URL で指定されたアプリケーション名と同じ場合にのみ有効になります。
StreamName
ライブストリームの名前。
説明名前は最大 256 文字で、数字、文字、ハイフン (-)、アンダースコア (_)、および等号 (=) を含めることができます。ブロッキングルールは、このパラメーターの値がストリーミング URL で指定されたストリーム名と同じ場合にのみ有効になります。
ブロッキングタイプ
ブラックリスト: ブラックリストに含まれるリージョンからのすべてのリクエストは、ストリーミングドメインのリソースへのアクセスがブロックされます。
ホワイトリスト: ホワイトリストに含まれるリージョンからのリクエストのみが、ストリーミングドメインのリソースへのアクセスを許可されます。
説明ブラックリストとホワイトリストは相互排他です。一度に有効になるのはどちらか一方だけです。
ブロックされたリージョンまたは許可されたリージョン
ブラックリストまたはホワイトリストに含まれるリージョン。
有効期限
ブロッキングルールが期限切れになる時刻。デフォルトでは、ルールの有効期限は今から 7 日後です。ビジネス要件に基づいてこのパラメーターを変更します。
[OK] をクリックして構成を完了します。
ストリームレベルのリージョンブロッキングルールを表示します。ストリームレベルのリージョンブロッキングルールを追加した後、ルールリストを更新してルールステータスを表示できます。 AppName、StreamName、およびルールタイプ (ブラックリストまたはホワイトリスト) に基づいてルールをクエリできます。
リモート認証
仕組み
リモート認証と URL 署名はどちらもライブストリーミングリソースを保護し、認証に成功したユーザーのみがこれらのリソースにアクセスできるようにします。2 つの方法には、次のような技術的な実装の違いがあります。
URL 署名: ユーザーはドメイン名の認証ルールを ライブセンター に配布し、ライブセンター は認証のデータインタラクションプロセス全体を完了します。、および 認証のデータインタラクションプロセス全体を完了します。
リモート認証: ユーザーは個別に構成された認証サーバーを持っています。ライブセンター がユーザーリクエストを受信した後、認証を完了するためにユーザーリクエストを認証サーバーに転送する必要があります。認証サーバーは、ユーザーによって 構築および管理 されます。 リモート認証は HLS プロトコルをサポートしていません。はユーザー リクエストを受信すると、認証を完了するために認証サーバーにユーザー リクエストを転送する必要があります。認証サーバーは ユーザーによって。
リモート認証機能のデータインタラクションプロセスは次のとおりです。
番号 | インタラクションの説明 |
1 | ユーザーは、リクエストに認証パラメーターを含めて、ライブセンターへのリソースアクセスリクエストを開始します。 |
2 | ライブセンター は、ユーザーリクエストを受信し、それを直接 (または指定されたルールに従って処理した後) 認証サーバーに転送します。 |
3 | 認証サーバーは、ユーザーリクエストの認証パラメーターに基づいて認証結果を提供し、それをライブセンターに返します。 |
4 | ライブセンター は、認証サーバーから返された認証結果に基づいて対応するアクションを実行し、対応するデータをユーザーに返します。
|
手順
ApsaraVideo Live コンソール にログオンします。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。ドメイン管理 ページが表示されます。
構成するストリーミングドメインを見つけ、「操作」列の ドメイン設定 をクリックします。
を選択します。
[リモート認証] タブをクリックし、[リモート認証] スイッチをオンにして、インターフェイスのプロンプトに従ってリモート認証パラメーターを構成します。
説明リモート認証を有効にすると、すべてのユーザーリクエストは認証サーバーにリダイレクトされます。多数のリクエストが POP に送信される場合は、パフォーマンスを損なうことなく認証サーバーがトラフィックの急増を処理できることを確認してください。
パラメーター
説明
認証サーバーアドレス
認証サーバーのアドレス。このアドレスはパブリックにアクセスできる必要があります。システムは、入力したアドレスの形式と値が有効かどうかを確認します。固定 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」をご参照ください。
パススルーリクエスト URL パラメーター
認証サーバーにチェックさせたい URL パラメーターを指定します。[指定されたパラメーターをパススルーする]、[指定されたパラメーターをパススルーしない]、または [リクエスト URL パラメーターをパススルーしない] を選択できます。
説明[指定されたパラメーターをパススルーする] または [指定されたパラメーターをパススルーしない] を選択した場合は、下の入力ボックスにパススルーする指定パラメーターを入力します。複数のパラメーターはコンマ (,) で区切ります。例:
key1,key2,key3。認証結果の HTTP ステータスコード
認証サーバーがライブセンターに返す HTTP ステータスコード。次のオプションのいずれかを選択できます。
[認証成功時の HTTP ステータスコード]: このオプションを選択した後、下の入力ボックスに認証成功時のカスタム HTTP ステータスコードを入力します。ライブセンターは、認証サーバーがこの HTTP ステータスコードを返した場合にのみユーザーリクエストを許可します。認証サーバーが他の HTTP ステータスコードを返した場合、ライブセンターはユーザーリクエストをブロックします。
HTTP ステータスコードを 200 に設定すると、認証サーバーは認証に合格したクライアントリクエストに対して HTTP 200 ステータスコードを POP に返します。
[認証失敗時の HTTP ステータスコード]: このオプションを選択した後、下の入力ボックスに認証失敗時のカスタム HTTP ステータスコードを入力します。ライブセンターは、認証サーバーがこの HTTP ステータスコードを返した場合にのみユーザーリクエストをブロックします。認証サーバーが他の HTTP ステータスコードを返した場合、ライブセンターはユーザーリクエストを許可します。
HTTP ステータスコードを 403 に設定すると、認証サーバーは認証に失敗したクライアントリクエストに対して HTTP 403 ステータスコードを POP に返します。
認証期間 (秒)
ライブセンターが認証を開始してから、ライブセンターが認証サーバーから認証結果を受信するまでの期間。
有効な値: 0 から 30 までの整数。
認証タイムアウト再試行回数
指定された認証期間を超過した場合に認証サーバーが認証を再試行する回数。再試行回数が指定された値に達すると、認証タイムアウトに指定したアクションが実行されます。[許可] または [拒否] を選択できます。
認証タイムアウト後のアクション
ライブセンターと認証サーバー間のデータインタラクションがタイムアウトした場合にリクエストに対して実行するアクション。[許可] または [拒否] を選択できます。違いは次のとおりです。
[許可]: 認証がタイムアウトした場合、ライブセンターはユーザーリクエストを直接許可します。
[拒否]: 認証がタイムアウトした場合、ライブセンターはユーザーリクエストを拒否し、認証失敗の HTTP ステータスコード (HTTP ステータスコード 403 など) をユーザーに返します。
非同期認証 (詳細構成)
非同期認証を有効にすると、認証結果を待たずにストリームを再生できます。後で返される結果が認証失敗を示している場合、再生は中断されます。これは、認証結果の同期によって発生する最初のフレーム期間の増加の問題を防ぐのに役立ちます。
[OK] をクリックして、パラメーターの構成を完了します。
リモート認証を正常に構成した後、[リモート認証] タブで現在の構成を変更したり、リモート認証を無効にしたりできます。
連結された変数 URL
変数を連結することで署名付き URL を構築し、その URL を認証サーバーのアドレスとして使用できます。次の表に、変数について説明します。
タイプ | 説明 |
数値変数 |
たとえば、アップストリーミング URL が |
アルファベット変数 |
たとえば、アップストリーミング URL が |
カスタム変数 | カスタム変数は、 |
ngx 変数 | すべての 変数によって参照されるすべての値は、認証アドレスを連結するときに URL エスケープ関数 |
ストリーム名変数 |
|
アップストリーミング URL またはストリーミング URL が rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc の場合。
認証サーバーのアドレスは http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token} として構成されます。
実際の認証アドレスは http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=*** です。