Control Access Using Custom Request Headers

最終更新日:2026-04-21 17:39:06

カスタムヘッダーのブロックリストと許可リストを使用すると、CDN上のコンテンツに対するリクエストが一致する必要のある特定のHTTPヘッダーを定義できます。このメカニズムにより、承認されたヘッダーからのリクエスト、または特定のヘッダー値を持つリクエストにのみアクセスが許可されることが保証され、ホットリンクを効果的にブロックし、貴重なコンテンツを保護できます。

How to Set Up Custom Header Access Rules

  1. CDNetworks Console にログインし、該当する製品を選択します。
  2. Configuration に移動し、設定したいドメインを見つけて、 Edit Configuration image.png をクリックします。
  3. 左側のサイドバーで Access Control - Header Access List に移動し、 Add をクリックします。
  4. ニーズに基づいて、以下の設定を構成します。

Apply to
これは、カスタムヘッダーのブロックリストまたは許可リストが適用されるリクエストの範囲を定義します。以下のオプションから選択できます:

設定 説明
All Requests アクセス制御ルールはすべてのタイプのリクエストに適用されます。
Only Homepage http://domain/ または https://domain/ などのドメインのルートディレクトリにのみ適用されます。
Specific File Type 特定のタイプのファイルにのみ適用されます。左側の定義済みファイルタイプから選択するか、カスタムファイルタイプを定義できます。複数のカスタムタイプはセミコロン ; で区切ります(例: jpg;png )。
Specific URL Path 特定のURLパスにあるコンテンツへのリクエストにのみ適用されます。2つのURLパス照合オプションが利用可能です:
Full URL Path : パラメータを含む完全なURLパス(例: path/index.html?abc=123 )。
Ignore Query String : クエリパラメータを含まないURLパス(例: path/index.html )。
Specific Directory 特定のディレクトリ配下のリクエストに適用されます。たとえば、 /file/abc/http://domain/file/abc/* 配下のすべてのコンテンツに適用されます。
注意:ディレクトリは / で始まり / で終わる必要があり、文字、数字、および一部の特殊文字(アンダースコア、ハイフン、パーセント記号、ドット)のみを含めることができます。複数のディレクトリは改行で区切る必要があります。
URL Pattern (Regex) 正規表現を使用して、ルールが適用されるリクエストの範囲を制御します。たとえば、パターン *.jpg$ を使用すると、アクセス制御が .jpg で終わるすべてのURLに適用されることが保証されます。

Advanced Scope Conditions
Advanced Scope Conditions を使用して、ルールの範囲をさらに絞り込むことができます。これにより、基本的な Apply to と交差して正確な制御が可能になります。1つまたは複数のパラメータを選択し、基本ルールと AND の関係を形成して、特定のリクエストやレスポンスをターゲットにします。

パラメータ 説明
Region or Exclude Regions CDNetworksが提供する国/地域リストから直接検索して選択できます。
Mainland China の場合、特定の省や、華東地域 (East Region) および西南地域 (Southwest Region) などのより大きな地理的エリアを選択することが可能です。
Exclude File Type 特定のファイルタイプを除外します。複数のタイプは ; で区切ります。
Exclude Custom File Type 必要に応じてカスタムファイルタイプを除外します。複数のタイプは ; で区切ります。
Exclude Directory 特定のディレクトリパスを除外します。パスは / で始まり / で終わる必要があります。複数のディレクトリは ; で区切ります。
Exception URL (Regex) 正規表現を使用してURLを除外します(例: .*\.jpg$ )。
Access-Control-Allow Methods HTTPリクエストメソッドを照合します。複数のメソッドは ; で区切ります(例: GET;POST )。
Exclude Request Method 特定のHTTPリクエストメソッドを除外します。

Rule Type
特定のニーズに応じて、カスタムヘッダーのブロックリストまたは許可リストを構成できます。

設定 説明
Blocklist ブロックリストを設定する際、許可されないカスタムリクエストヘッダーとそれに対応する値を指定する必要があります:
Blocked Header Names : これは、検証が必要なカスタムHTTPリクエストヘッダーの名前です。各ブロックリストには1つのヘッダー名しか含めることができない点に注意してください。
Blocked Header Values : これらは禁止されているヘッダー値です。リクエストにこれらの値が存在する場合、アクセスは拒否されます。複数の禁止値を設定でき、 ; で区切ります。
Allowlist 許可リストを設定する際、ブロックリストと同様に、許可されるカスタムリクエストヘッダーとそれに対応する値を指定する必要があります:
Allowed Header Name : これは、検証が必要なカスタムHTTPリクエストヘッダーの名前です。同様に、各許可リストには1つのヘッダー名しか含めることができません。
Allowed Header Values : これらは許可されているヘッダー値です。リクエストにこれらの値が存在する場合にのみアクセスが許可されます。複数の許可値を設定でき、 ; で区切ります。

システムは1つのカスタムヘッダー許可リストのみをサポートし、それには1つのカスタムヘッダー名のみを含めることができます。複数のカスタムヘッダーを含める必要がある場合は、カスタマーサービスにご連絡の上サポートを受けてください。

Apply Rule to
Client Request にのみ適用され、クライアント(ユーザーのブラウザやアプリケーションなど)から発行されたリクエスト内の特定のHTTPヘッダーを検証して、事前に設定されたルールを満たしていることを確認することを指します。

Action
指定されたルールを満たさないリクエストの処理方法を決定します:

  • Block Access : 検証に失敗したリクエストに対して403エラーを返します。
  • Redirect : 検証に失敗したリクエストを指定されたURLにリダイレクトします。

Case-Insensitive Match
この設定のデフォルトは Yes です。

  • Yes オプションは、 Apply to が大文字と小文字を区別しないことを示します。大文字と小文字のみが異なるリクエストも一致します。たとえば、範囲を http://domain/a.jpg に設定した場合、 http://domain/a.jpghttp://domain/A.jpg の両方がルールをトリガーします。
  • 逆に、 No を選択した場合、ルールは Apply to の設定で指定された大文字小文字と完全に一致する着信リクエストにのみ適用されます。

Priority
複数のアクセス制御ルールが設定されている場合、CDNは数値に基づいてそれらを優先順位付けし、数値が大きいものから先に実行します。

設定後、 Confirm をクリックし、 Next を選択して設定を送信してください。本番環境への支障を防ぐため、テスト環境での pre-deployment を実施して設定の正確性を確認することをお勧めします。確認後、 Direct Deployment をクリックしてライブで設定を適用します。通常、3〜5分で有効になります。事前デプロイテストの詳細については、チュートリアル Verifying Configurations Through Pre-Deployment を参照してください。

Best Practices

Example 1: Configuring a Custom Header Blocklist
クライアントリクエストに、値が key1 または key2Test-Header ヘッダーが含まれている場合、アクセスを拒否します。

Example 2: Configuring a Custom Header Allowlist
クライアントリクエストに、値が key1 または key2Test-Header ヘッダーが含まれている場合にのみ、アクセスを許可します。

Notes

カスタムヘッダーのブロックリストと許可リストを同時に構成しないでください( DO NOT )。すべてのCDNアクセスが拒否され、オンライン運用に影響を与える可能性があります。たとえば、同じヘッダーに対してブロックリストと許可リストの両方の設定が構成されている場合、すべてのリクエストが拒否される結果になる可能性があります。

Why might all access be denied?

  1. リクエストに key1 の値を持つ Test-Header ヘッダーが含まれている場合、ブロックリストルールに一致するため、アクセスが拒否されます。
  2. リクエストに key1 以外の値を持つ Test-Header ヘッダーが含まれている場合、ブロックリストによってブロックされることはありませんが、許可リスト( key1 の値を持つ Test-Header のみを許可する)の基準を満たさないため、アクセスが拒否されます。

ブロックリストと許可リストの両方を構成する必要がある場合は、適切なセットアップを確実にするため、カスタマーサービスにご連絡の上サポートを受けてください。