サービスが、悪意のある IP アドレスによるトラフィックの不正利用や特定の攻撃を受けた場合、IP ブラックリストまたはホワイトリストを設定して、リクエスト元に基づいて CDN エッジノードでリクエストをフィルタリングできます。この機能は、ホワイトリストを使用して信頼できる IP アドレスからのみアクセスを許可したり、ブラックリストを使用して既知の悪意のある IP アドレスを正確にブロックしたりすることで、オリジンリソースを保護してセキュリティリスクを低減します。
ユースケース
以下のユースケースに基づいて、IP ホワイトリストまたはブラックリストを選択します。
設定 | ユースケース |
IP ホワイトリスト |
|
IP ブラックリスト |
|
課金
IP ブラックリストまたはホワイトリストの設定は無料ですが、ブロックされたリクエストには少額の料金が発生します。
課金の原則: ブロックはレイヤー 7 の HTTP リクエスト処理中に行われます。この時点で、CDN ノードはすでにリクエストを処理し、リソースを消費しています。
課金項目:
トラフィック料金: ブロックされたリクエストは、HTTP ヘッダーを含むリクエスト 1 つ分と、403 ページのレスポンス 1 つ分のトラフィックを生成します。このトラフィックは、標準の CDN トラフィックレートで課金されます。
HTTPSリクエスト料金: ドメイン名が HTTPS を使用している場合、TLS ハンドシェイクは IP アドレスによるブロックが発生する前に完了します。そのため、ブロックされた各 HTTPS リクエストは、課金対象の HTTPS リクエストとして 1 件カウントされます。
考慮事項
[IP ブラックリスト/ホワイトリスト]と [Referer ブラックリスト/ホワイトリスト]は、アクセス制御モジュール内の個別の設定項目です。これらを混同しないでください:
[IP ブラックリスト/ホワイトリスト]:送信元 IP アドレスに基づいてアクセスを制御します。ルールフィールドでは、IPv4 または IPv6 アドレスと、
1.1.1.0/24などの CIDR ブロックがサポートされます。設定パス:[ドメイン名] > [アクセス制御] > [IP ブラックリスト/ホワイトリスト]。[Refererブラックリスト/ホワイトリスト]:HTTP Referer ヘッダーに基づいてホットリンクを制御します。ルールフィールドではドメイン名または URL のみがサポートされ、IP アドレスはサポートされません。設定パス:[ドメイン名] > [アクセス制御] > [Refererブラックリスト/ホワイトリスト]。
IP アドレスによるアクセスを制御するには、[IP ブラックリスト/ホワイトリスト]を使用してください。[Refererブラックリスト/ホワイトリスト]のルールフィールドに IP アドレスや CIDR ブロックを入力しないでください。入力した場合、システムはパラメーター形式の検証エラーInvalidArgValue.Malformedを返します。
以下の考慮事項も、IP ブラックリストおよびホワイトリストの設定に適用されます。
ドメイン名には、IP ブラックリストまたは IP ホワイトリストのルールを 1 つしか設定できません。この 2 つのタイプは相互に排他的であり、同時に設定することはできません。
IP ブラックリストを設定した後も、ブラックリストに登録された IP アドレスからのリクエストはCDN または ノードに到達する可能性がありますが、ノードはリクエストを拒否し、403 ステータスコードを返します。CDN のログには、これらの IP アドレスからのリクエストが記録されます。これは、IP ブラックリストが機能していないことを意味するものではありません。
特定のリージョンでは、一部のインターネットサービスプロバイダー (ISP) がエンドユーザーにプライベート IP アドレスを割り当てることがあります。その結果、CDN または ノードはユーザーのプライベート IP アドレスを受信することがあります。
説明プライベート IP アドレスは、次の 3 つの範囲に分類されます。
クラス A プライベート IP アドレス:
10.0.0.0~10.255.255.255。サブネットマスク:10.0.0.0/8。クラス B プライベート IP アドレス:
172.16.0.0~172.31.255.255。サブネットマスク:172.16.0.0/12。クラス C プライベート IP アドレス:
192.168.0.0~192.168.255.255。サブネットマスク:192.168.0.0/16。
操作手順
Alibaba Cloud CDN コンソールにログインします。
[ドメイン名] ページで、管理対象のドメイン名を見つけ、[アクション] 列の [管理] をクリックします。

ドメイン名の左側のナビゲーションウィンドウで、[リソースアクセス制御] をクリックします。
[IP ブラックリスト/ホワイトリスト] セクションで、[設定の変更] をクリックします。
以下の例に基づいてルールを迅速に設定できます。また、パラメーターを参照して、ビジネスに適した設定を追加することもできます。
例1:管理バックエンドの保護 (ホワイトリスト + ルールエンジン)
目標: オフィスのエグレス IP アドレス
203.x.x.10と203.x.x.11のみが/admin/パスにアクセスできるようにします。設定:
[タイプ]:[ホワイトリスト] を選択します。
[ルール]:
203.x.x.10と203.x.x.11を別々の行に入力します。[詳細設定] - [IP ルール]:送信元 IP アドレスを判断基準とします を選択します。
[詳細設定] - [ルール条件]:ルールエンジンページで、URI に大文字と小文字を区別せずに
/admin/*が含まれる場合に一致するルールを設定します。次に、このルールをルール条件として選択します。
結果: これら 2 つの IP アドレスからのリクエストのみが
/admin/ディレクトリにアクセスできます。他のすべての IP アドレスからこのディレクトリへのリクエストは、403 ステータスコードで拒否されます。
例2:パートナーの IPv6 CIDR ブロックからのアクセスを許可 (ホワイトリスト)
目標: パートナーの IPv6 CIDR ブロック
FC00:0AA3:0000:0000:0000:0000:0000:0000/48からのアクセスのみを許可します。設定:
[タイプ]:[ホワイトリスト] を選択します。
[ルール]:
FC00:0AA3:0000:0000:0000:0000:0000:0000/48を入力します。[詳細設定] - [IP ルール]:送信元 IP アドレスを判断基準とします を選択します。
結果: この IPv6 アドレス範囲からのリクエストのみがドメインリソースにアクセスできます。
例3:攻撃元を即座にブロック (ブラックリスト)
目標:
198.x.x.0/24CIDR ブロックから CC 攻撃が検出されたため、即座にブロックする必要があります。設定:
[タイプ]:[ブラックリスト] を選択します。
[ルール]:
198.x.x.0/24を入力します。[詳細設定] - [IP ルール]:[実際の接続 IP アドレスを評価の基準として使用] を選択します。
結果: CDN ノードは
198.x.x.0/24CIDR ブロックからのすべての IP リクエストを拒否します。
パラメーター
次の表に、IP ブラックリストまたはホワイトリストのパラメーターを示します。
パラメーター | 説明 |
[タイプ] | [ブラックリスト] または [ホワイトリスト] を選択します。
|
[ルール] | ルール形式の要件
ルールの長さ制限 ルール入力フィールドは、最大 30 KB の文字に対応しています。IP アドレスと CIDR ブロックの長さは異なるため、平均的なエントリ長に基づくと、このフィールドには約 700 個の IPv6 アドレスまたは CIDR ブロック、あるいは約 2,000 個の IPv4 アドレスまたは CIDR ブロックを入力できます。より多くの IP アドレスをブロックする必要がある場合は、大規模な IP ブロックとリージョンベースのブロッキングをサポートする ESA セキュリティ保護機能を有効にしてください。詳細については、「CDN、DCDN、および ESA: 機能比較」および「IP アクセスルールを設定する」をご参照ください。 |
[IP ルール] | 次の 3 つのルールのいずれかを選択できます。
|
[ルール条件] | ルール条件は、ユーザーリクエスト内のさまざまなパラメーターを識別し、そのリクエストに対して設定を有効にするかどうかを決定します。 重要 ルール条件を参照する場合、機能自体の設定順序ではなく、関連するルール条件の優先度に基づいて照合されます。
|
参考情報:Alibaba Cloud CDNがクライアントIPアドレスを識別する方法
CDN ノードは、次の 2 つの方法でクライアント IP アドレスを識別します。それぞれに長所と短所があります。
実際の接続 IP アドレス (TCP 接続 IP)
定義: クライアントが CDN エッジノードとの TCP 接続を確立するために使用する IP アドレス。
利点: アドレスは偽造できず、最も高いセキュリティを提供します。
欠点: ユーザーが企業のネットワークエグレスや NAT デバイスなどのプロキシ経由で CDN にアクセスする場合、このアドレスはプロキシサーバーの IP アドレスとなり、実際のクライアントの送信元を反映しません。
X-Forwarded-For(XFF) リクエストヘッダー定義: リクエストが通過する各プロキシサーバーの IP アドレスを記録する HTTP リクエストヘッダー。CDN は通常、一番左の IP アドレスをクライアント IP アドレスとして使用します。
利点: ヘッダーはプロキシ経由で実際のクライアント IP アドレスを識別できます。
欠点: クライアントはこのヘッダーを偽造できるため、セキュリティ上の深刻なリスクとなります。悪意のあるユーザーが XFF ヘッダーを偽造して、この IP アドレスに基づくアクセス制御をバイパスする可能性があります。
クライアントが CDN に直接アクセスする場合、これら 2 つの IP アドレスは通常同じです。クライアントがプロキシサーバー経由で CDN にアクセスする場合、アドレスは異なります。たとえば、実際のクライアント IP アドレスが 10.10.10.10 で、プロキシサーバーの IP アドレスが 192.168.0.1 の場合:
X-Forwarded-Forリクエストヘッダーの値は10.10.10.10, 192.168.0.1となる場合があります。実際のクライアント IP アドレスは
10.10.10.10です。実際の接続 IP アドレスは
192.168.0.1です。
前述の IP 識別方法に対応するため、CDN はセキュリティとビジネスの柔軟性のバランスをとる 3 つの検証モードを提供しています。
IPアドレス検証モード | ユースケース | 動作の仕組み | セキュリティ評価 |
ユーザーの x-forwarded-for リクエストヘッダーを評価の基準として使用 (デフォルト) | すべてのクライアントが、XFF ヘッダーを正しく設定する信頼できるプロキシ経由で CDN にアクセスします。 |
|
|
実際の接続 IP アドレスを評価の基準として使用 | クライアントが中間プロキシサーバーなしで CDN に直接接続する場合、またはアクセスをプロキシサーバーの IP アドレスに基づいて制御する必要がある場合。 | クライアントが CDN ノードとの TCP 接続を確立するために使用した IP アドレスのみが照合されます。 | 接続 IP アドレスは偽造できず、最も信頼性の高い保護を提供します。 |
x-forwarded-for と実際の接続 IP アドレスの両方を評価の基準として使用 | 一部のユーザーが直接接続し、他のユーザーがプロキシ経由で CDN にアクセスする混合ネットワーク環境。 | ブラックリスト: ホワイトリスト: | このモードは、実際のクライアント IP アドレスを識別する柔軟性と、接続 IP アドレスのセキュリティを組み合わせたもので、ほとんどのシナリオで最適な選択肢です。 |
よくある質問
403 エラーなど、IP ブラックリストとホワイトリストの問題のトラブルシューティングについては、「アクセス制御の問題のトラブルシューティング」をご参照ください。
IP ブラックリストとホワイトリストのクォータについては、「アクセス制御に関するよくある質問」をご参照ください。