すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:アクセス制御

最終更新日:Apr 22, 2026

ストリーミングドメインでは、URL 署名、リファラーベースのホットリンク保護、IP アドレスのブラックリストとホワイトリスト、プロトコル禁止、リージョンブロッキング、リモート認証など、複数のアクセス制御ポリシーを使用して、不正な使用やアクセスを防止します。これらのポリシーにより、ライブストリーミングサービスのセキュリティとユーザーエクスペリエンスが向上します。ビジネスやセキュリティのニーズに合わせてポリシーを選択・設定し、ライブリソースを保護し、信頼性の高い運用を確保してください。

概要

ストリーミングドメインを保護し、不正使用を防止するために、いくつかのアクセス制御ポリシーを実装できます。それぞれが異なる保護レイヤーを提供します。

  • URL 署名:暗号署名を使用して各リクエストの信頼性を検証します。リファラーベースの方法よりも強力な保護を提供します。

  • リファラーベースのホットリンク保護:カスタムのブラックリストまたはホワイトリストを使用してアクセスを制御し、再生リクエストを許可または拒否して、ライブコンテンツを保護します。

  • IP アドレスのブラックリストとホワイトリスト:特定の IP アドレスからのアクセスを制限または許可します。

  • プロトコル禁止:ドメインの再生プロトコルを制限します。有効にすると、禁止されたプロトコルを使用する再生 URL は拒否されます。

  • リージョンブロッキング:リージョンのブラックリストまたはホワイトリストを指定して、ストリーミングドメインへのアクセスを管理します。

  • リモート認証:ユーザーリクエストを独自の認証サーバーに転送して検証し、柔軟で安全なアクセス制御レイヤーを追加します。

URL 署名

仕組み

URL 署名機能は、ApsaraVideo Live とお客様のビジネスサーバー間で認証を連携させ、ライブストリームリソースを不正アクセスから保護します。

  1. お客様のビジネスサーバーが、認証情報を含む署名付き URL を生成します。

  2. ユーザーは、署名付き URL を使用して ApsaraVideo Live サービスにアップストリーミングまたは再生リクエストを送信します。

  3. ApsaraVideo Live のエッジノードが署名付き URL 内の認証情報を検証し、有効なリクエストを処理し、無効なリクエストを拒否します。

重要

ApsaraVideo Live がリクエスト URL を認証した後、URL 内の特殊文字 (例:=+) はエスケープされます。

URL 署名のユースケース、署名付き URL の構造、および認証の仕組みの詳細については、「署名付きアップストリーミング URL とストリーミング URL」をご参照ください。

URL 署名の設定

  1. ApsaraVideo Live コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. URL 署名 タブをクリックし、設定の変更 をクリックします。

    修改配置

    説明

    初めてドメイン名を追加する際、[URL 署名] はデフォルトで有効になっています。この機能が有効な場合にのみ、設定の変更 が可能です。

  6. URL 署名パラメーターを設定し、OK をクリックします。

    URL鉴权配置

    次の表にパラメーターを示します。

    パラメーター

    説明

    認証タイプ

    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 を使用してアップストリーミングまたは再生リクエストを開始できる期間です。アップストリーミングと再生は長時間接続を使用します。有効期間が過ぎてもアクティブな接続は終了しませんが、期限切れの URL を使用した新しいリクエストは失敗します。新しいドメインのデフォルトの有効期間は 1 日 (1,440 分) です。最小 1 分から上限なしでカスタムの有効期間を設定できます。

URL 署名の無効化

説明
  • URL 署名 を無効にする前に、不正なトラフィックのリスクを理解し、免責事項同意書に署名してください。

  • URL 認証 を無効にすると、有効期限のないアップストリーミング URL またはストリーミング URL を生成できます。

  1. URL 署名 タブで、免責事項の確認 リンクをクリックします。

  2. 免責事項 ダイアログボックスで、チェックボックスを選択し、免責事項 をクリックします。

  3. 免責事項同意書に署名した後、OK をクリックします。

  4. 署名付き 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 ヘッダーを削除するため、アクセスが失敗する原因となります。

操作手順

  1. ApsaraVideo Live コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. Referer ホットリンク保護 タブをクリックし、Referer ホットリンク保護 スイッチをオンにします。

    开启

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

    配置防盗链

    次の表に、リファラーベースのホットリンク保護のタイプを示します。

    タイプ

    説明

    ブラックリスト

    ブラックリスト上のドメインはリソースにアクセスできません。

    ホワイトリスト

    ホワイトリスト上のドメインのみがリソースにアクセスできます。他のすべてのドメインはブロックされます。

IP ブラックリストとホワイトリスト

仕組み

  • IP アドレスをブラックリストに追加して、ストリーミングドメインへのアクセスをブロックします。

  • IP アドレスをホワイトリストに追加して、その IP アドレスのみがストリーミングドメインにアクセスできるようにします。

説明
  • IP アドレスのブラックリストとホワイトリストは、どちらも IPv6 アドレスをサポートしています。IPv6 アドレスを入力する際は、2001:DB8:0:23:8:800:200C:417A2001: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/24192.168.0.1 から 192.168.0.254 までの IP アドレス範囲を表します。

操作手順

  1. ApsaraVideo Live コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. IP ブラックリストまたはホワイトリスト タブをクリックし、IP ブラックリストまたはホワイトリスト スイッチをオンにします。

    开启黑白名单

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

    配置黑白名单-chs

    タイプ

    説明

    ブラックリスト

    ブラックリスト上の IP アドレスはリソースにアクセスできません。

    ホワイトリスト

    ホワイトリスト上の IP アドレスのみがリソースにアクセスできます。他のすべての IP アドレスはブロックされます。

プロトコル禁止

仕組み

プロトコル禁止を使用すると、プライマリドメインとサブドメインを含むストリーミングドメインに対して、プロトコルレベルで再生をブロックできます。この機能を有効にすると、指定されたプロトコルを使用する再生 URL はブロックされます。

コンソールを使用するだけでなく、BatchSetLiveDomainConfigs API オペレーションを呼び出すこともできます。これを行うには、Functions パラメーターで alilive レコードを渡します。詳細については、「BatchSetLiveDomainConfigs」をご参照ください。

操作手順

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. プロトコルの禁止 タブをクリックし、ブロックしたいプロトコルを選択して、それぞれのスイッチをオンにします。

    禁播

リージョンブロッキング

仕組み

リージョンブロッキングは、クライアントリクエストの地理的な場所を特定し、特定のリージョンからのアクセスをブロックするか、指定されたリージョンからのアクセスのみを許可することができます。これは、悪意のあるリクエストを軽減したり、コンテンツ配信権を強制したりするのに役立ちます。

説明
  • リージョンブロッキングは、HLS、RTMP、FLV、および RTS 再生プロトコルでサポートされています。

  • 同じリージョンに対してドメインレベルとストリームレベルの両方のリージョンブロッキングを設定した場合、ブラックリストの設定が優先されます。たとえば、ドメインレベルのホワイトリストとストリームレベルのブラックリストを設定した場合、ストリームレベルのブラックリストが適用されます。ドメインレベルのブラックリストとストリームレベルのホワイトリストを設定した場合、ドメインレベルのブラックリストが適用されます。

  • ドメイン名のリージョンブロックライブストリームリージョンブロック の両方を設定できます。ホワイトリストとブラックリストの間に競合が存在する場合、ブラックリストが優先され、どのリージョンがブロックされるかが決定されます。

ドメインレベルのリージョンブロッキング

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. リージョンのブロック タブで、ドメイン名のリージョンブロック スイッチをオンにします。ブロックタイプ を選択し、アクセス禁止リージョン を指定します。

    パラメーター

    説明

    ブロックタイプ

    • ブラックリスト:ブラックリスト上のリージョンは、ストリーミングドメイン下のどのリソースにもアクセスできません。

    • ホワイトリスト:ホワイトリスト上のリージョンのみがストリーミングドメイン下のリソースにアクセスできます。他のすべてのリージョンはブロックされます。

    ブラックリストとホワイトリストは相互排他的です。一度に有効にできるのはどちらか一方のみです。

    アクセス禁止リージョン

    ブラックリストまたはホワイトリストに含めるリージョン。

  6. OK をクリックして設定を保存します。

ストリームレベルのリージョンブロッキング

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御

  5. リージョンのブロック タブをクリックし、[ストリームレベルのリージョンブロッキング] セクションで ブロックの追加 をクリックします。添加封禁..png

    パラメーター

    説明

    AppName

    ライブストリームのアプリケーション名。

    説明

    AppName は最大 256 文字で、数字、大文字と小文字のアルファベット、ハイフン (-)、アンダースコア (_)、等号 (=) を含めることができます。ブロッキングルールが有効になるには、ライブストリーム URL の AppName と一致する必要があります。

    StreamName

    ライブストリームのストリーム名。

    説明

    StreamName は最大 256 文字で、数字、大文字と小文字のアルファベット、ハイフン (-)、アンダースコア (_)、等号 (=) を含めることができます。ブロッキングルールが有効になるには、ライブストリーム URL の StreamName と一致する必要があります。

    ブロッキングタイプ

    • ブラックリスト:ブラックリスト上のリージョンの視聴者は、指定されたストリームにアクセスできません。

    • ホワイトリスト:ホワイトリスト上のリージョンの視聴者のみが、指定されたストリームにアクセスできます。

    説明

    ブラックリストとホワイトリストは相互排他的です。一度に有効にできるのはどちらか一方のみです。

    リージョン

    ブラックリストまたはホワイトリストに含めるリージョン。

    有効期限

    ルールが失効する時刻。デフォルトでは、ルールは 7 日間有効ですが、必要に応じて調整できます。

  6. OK をクリックして設定を保存します。

  7. ストリームレベルのリージョンブロッキングルールのリストを表示します。ルールを設定した後、リストを更新してステータスを確認できます。リストタイプ、AppName、または StreamName でリストをフィルタリングできます。

リモート認証

仕組み

リモート認証と URL 署名はどちらもライブストリームリソースを不正アクセスから保護しますが、技術的な実装が異なります。

  • URL 署名ライブセンターで認証ルールを設定し、その後、認証データの交換全体を処理します。

  • リモート認証:専用の認証サーバーを維持します。リクエストが受信されると、ライブセンターはそれを検証のためにお客様のサーバーに転送します。お客様は認証サーバーの構築と管理を担当します。リモート認証は HLS プロトコルをサポートしていません。

リモート認証のデータフローは次のとおりです。

ステップ

インタラクション

ユーザーは、認証パラメーターを含むリソースアクセスリクエスト (POST) をライブセンターに送信します。

ライブセンターはユーザーリクエストを受信し、直接または指定されたルールに基づいて処理した後、POST メソッドを使用して認証サーバーに転送します。

認証サーバーはリクエスト内のパラメーターを検証し、認証結果を決定し、POST 応答を介してライブセンターに返します。

ライブセンターは認証サーバーからの POST 応答を受信し、結果に基づいてアクションを実行し、対応するデータをユーザーに返します。

  • 例 1:認証が成功した場合、ライブセンターは要求されたコンテンツをユーザーに提供します。

  • 例 2:認証が失敗した場合、ライブセンターは 403 ステータスコードをユーザーに返します。

  • 例 3:認証がタイムアウトした場合、ライブセンターはタイムアウトのデフォルトアクションを実行します。これは、ユーザーリクエストを許可または拒否するかのいずれかです。

操作手順

  1. ApsaraVideo Live コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、アップストリームミングまたはストリーミングのドメイン名管理 をクリックします。ドメイン管理 ページが表示されます。

  3. 設定するストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 をクリックします。

  5. リモート認証 タブをクリックし、リモート認証 スイッチをオンにして、パラメーターを設定します。

    説明

    リモート認証が有効な場合、すべてのユーザーリクエストが処理のためにお客様の認証サーバーに転送されます。大量のリクエストが予想される場合は、認証サーバーのパフォーマンスと容量を考慮してください。

    パラメーター

    説明

    認証サーバーアドレス

    認証サーバーの公開アクセス可能なアドレス。システムは入力されたアドレスの形式と値を検証します。固定 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 などの失敗ステータスコードをユーザーに返します。

    非同期認証

    有効にすると、リモート認証の結果を待たずに再生がすぐに開始されます。認証が失敗した場合、接続は終了します。この機能は、同期認証による遅延を回避することで、初回フレーム表示時間を短縮できます。

  6. OK をクリックして設定を保存します。

    リモート認証を設定した後、リモート認証 タブに戻って設定を変更したり、機能を無効にしたりできます。

URL 変数の連結

変数を使用して、認証 URL を動的に生成できます。次の表に、利用可能な変数を示します。

タイプ

説明

数値変数

${1}${2} などの数値変数は、アップストリーミングまたは再生 URL の ? より前の部分を参照するために使用されます。

たとえば、アップストリーミング URL が rtmp://domain.aliyundoc.com/appname/streamname?token=1&name=xr の場合、${1}=appname および ${2}=streamname となります。

アルファベット変数

${arg_token}${arg_name} などの変数は、アップストリーミングまたは再生 URL の ? 記号に続く部分を参照するために使用されます。

たとえば、アップストリーミング URL が rtmp://domain.aliyundoc.com/appname/streamname?token=1&name=xrc の場合、${arg_token}=1 および ${arg_name}=xrc となります。

カスタム変数

カスタム変数はプレフィックス udv_ で始まります。現在サポートされている変数は ${udv_host}${udv_ip} で、それぞれホストとアップストリーミングクライアントの IP を参照するために使用されます。

NGX 変数

すべての ngx.var.* 変数は直接参照できます。たとえば、${args} を使用して ngx.var.args を参照できます。

変数によって参照されるすべての値は、認証 URL が連結される際に URL エスケープ関数 ngx.escape_uri によって処理され、特殊文字による曖昧さを防ぎます。

ストリーム名変数

videoname=${stream_name} の形式でパラメーターを追加できます。ここで、${stream_name} 変数は再生リクエストからのストリーム名に置き換えられます。

説明

アップストリーミングまたはストリーム再生 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=*** となります。