悪意のある IP リクエストや標的型攻撃からサービスを保護するため、Alibaba Cloud CDN のエッジ POP(Point of Presence)でソース IP に基づくリクエストフィルタリングを行うよう、IP ブラックリスト / ホワイトリストを設定できます。この機能により、信頼できる IP アドレスからのみアクセスを許可する(ホワイトリスト)か、既知の悪意ある IP アドレスからのアクセスをブロックする(ブラックリスト)ことで、オリジンサーバーリソースを保護し、セキュリティリスクを軽減できます。
ユースケース
パラメーター | ユースケース |
IP ホワイトリスト |
|
IP ブラックリスト |
|
課金
IP アドレスのブラックリスト/ホワイトリスト 機能の設定自体は無料ですが、ブロックされたリクエストに対しても課金が発生します。
課金ロジック:ブロッキングは HTTP リクエスト処理段階(レイヤー 7)で行われます。この時点で、CDN POP はすでにリクエストを処理し、リソースを消費しています。
課金対象項目:
データ転送料金:各ブロックされたリクエストに対して、元のリクエスト(HTTP ヘッダーを含む)および 403 応答ページの両方でデータ転送が発生します。このデータ転送は、標準的な CDN 料金で請求されます。
HTTPS リクエスト料金:HTTPS を使用しているドメインの場合、IP ブロックが適用される前に TLS ハンドシェイクが完了します。そのため、各ブロックされたリクエストも課金対象となる HTTPS リクエストとしてカウントされます。
注意事項
1 つのドメインに対して、IP ブラックリストと IP ホワイトリストのいずれか一方のみを設定できます。両方を同時に設定することはできません(相互排他です)。
IP ブラックリストを設定した後も、ブラックリストに登録された IP からのリクエストは POP に到達します。POP はこれらのリクエストを拒否し、403 状態コードを返します。ログにはこれらのリクエストが記録されますが、これは期待される動作であり、IP ブラックリストが正常に機能していることを示しています。
特定の地域の一部インターネットサービスプロバイダー(ISP)は、エンドユーザーにプライベート IP アドレスを割り当てることがあります。その結果、POP はユーザーのプライベート 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
操作手順
-
CDN コンソールにログインします。
-
ドメイン名 ページで、対象のドメイン名を見つけ、操作 列の 管理 をクリックします。
-
ドメインのナビゲーションウィンドウで、リソースアクセス制御 をクリックします。
IP アドレスのブラックリスト/ホワイトリスト セクションで、変更 をクリックします。
以下の例を参考に、迅速に構成を完了できます。ビジネス要件に応じた詳細な設定については、「パラメーター」をご参照ください。
シナリオ 1:管理バックエンドの保護(ホワイトリスト + ルールエンジン)
目的:オフィスの出口 IP
203.x.x.10および203.x.x.11からのリクエストのみが/admin/パスにアクセスできるようにします。設定内容:
タイプ:ホワイトリスト を選択します。
ルール:
203.x.x.10および203.x.x.11を入力します(1 行につき 1 つ)。高度設定-IP ルール:送信元 IP アドレスを判断基準とします を選択します。
高度設定-ルール条件:ルールエンジン ページで、URI に
/admin/*(大文字小文字を区別しない)が含まれるリクエストに一致するルールを作成します。その後、このルールをルール条件として選択します。
結果:上記 2 つの IP アドレスからのリクエストのみが
/admin/ディレクトリにアクセスできます。このディレクトリへの他のすべてのリクエストは、403 状態コードで拒否されます。
シナリオ 2:パートナーの IPv6 ネットワークセグメントからのアクセス許可(ホワイトリスト)
目的:パートナーの IPv6 ネットワークセグメント
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 POP は
198.x.x.0/24CIDR ブロックからのすべてのリクエストを拒否します。
パラメーター
パラメーター | 説明 |
タイプ | ブラックリスト または ホワイトリスト を選択します。
|
ルール | フォーマット要件
ルールの文字数制限 ルールフィールドには最大 30 KB の文字を入力できます。この制限により、約 700 件の IPv6 アドレス / 範囲または約 2,000 件の IPv4 アドレス / 範囲を設定できます。より多くの IP アドレスをブロックする必要がある場合は、Edge Security Accelerator(ESA)機能を有効にしてください。ESA では、より多くの IP アドレスを設定でき、地域ベースのブロッキングもサポートされています。詳細については、「CDN、DCDN、および ESA の機能比較」および「IP アクセスルールの設定」をご参照ください。 |
IP ルール | 次のいずれかのルールを選択できます。
|
ルール条件 | ルール条件は、リクエスト内のさまざまなパラメーターを評価することで、構成がリクエストに適用されるかどうかを決定します。 重要 機能がルールエンジンで設定されたルール条件を参照する場合、実行順序は機能構成の順序ではなく、関連付けられたルール条件の優先度に従います。
|
Alibaba Cloud CDN によるクライアント IP の識別方法
Alibaba Cloud CDN は、クライアント IP を識別するために次の 2 つの方法を使用します。それぞれに利点と欠点があります。
TCP 接続 IP
定義:クライアントとエッジ POP 間で TCP 接続を確立するために使用される IP アドレス。
利点:この IP アドレスはなりすましができないため、最も安全なオプションです。
欠点:クライアントが企業ネットワークの出口や NAT デバイスなどのプロキシサーバー経由で接続する場合、この IP は元のクライアントではなくプロキシサーバーのものになります。
X-Forwarded-For(XFF)リクエストヘッダー定義:リクエストが通過する各プロキシサーバーの IP アドレスを記録する HTTP リクエストヘッダーフィールド。CDN は通常、このヘッダーの最も左側の IP アドレスをクライアント IP として使用します。
利点:プロキシサーバーの背後にある元のクライアント IP を識別できます。
欠点:このリクエストヘッダーはクライアントによってなりすましが可能なため、重大なセキュリティリスクがあります。攻撃者は XFF ヘッダーを偽造して、IP ベースのアクセス制御をバイパスできます。
クライアントが CDN に直接接続する場合、これら 2 つの IP は通常同じです。ただし、クライアントがプロキシサーバー経由で接続する場合は、IP が異なります。たとえば、元のクライアント 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です。TCP 接続 IP は
192.168.0.1です。
これらのシナリオに対応するため、Alibaba Cloud CDN はセキュリティとビジネス上の柔軟性のバランスを取るための 3 つの IP アドレス検証モードを提供しています。
IP 検証モード | ユースケース | メカニズム | セキュリティ評価 |
X-Forwarded-For ヘッダーを基準として使用(デフォルト) | すべてのクライアントが XFF ヘッダーを正しく設定する信頼済みプロキシサーバー経由で接続する場合。 |
|
|
TCP 接続 IP を基準として使用 | クライアントがプロキシサーバーを経由せずに直接 CDN に接続する場合、またはプロキシサーバーの IP に基づいてアクセスを制御したい場合。 | TCP 接続 IP のみを照合に使用します。 | TCP 接続 IP はなりすましができないため、最も信頼性の高い保護を提供します。 |
X-Forwarded-For ヘッダーおよび TCP 接続 IP の両方を基準として使用 | 一部のクライアントが直接接続し、他のクライアントがプロキシサーバー経由で接続するような混在環境の場合。 | 拒否リスト: 許可リスト: | このモードは、元のクライアント IP を識別する柔軟性と TCP 接続 IP のセキュリティを両立しており、ほとんどのシナリオで推奨される選択肢です。 |
よくある質問
関連 API
IP アドレスのブラックリスト/ホワイトリスト の追加
<a baseurl="t5153_v3_16_0.xdita" data-node="3761881" data-root="85023" data-tag="xref" href="t2235627.xdita#" id="79214f4de7aic">BatchSetCdnDomainConfig</a> 操作を呼び出して、IP アドレスのブラックリスト/ホワイトリスト を設定します。詳細については、「IP ホワイトリストの設定」および「IP ブラックリストの設定」をご参照ください。
更新 IP アドレスのブラックリスト/ホワイトリスト 構成
<a baseurl="t5153_v3_16_0.xdita" data-node="3761881" data-root="85023" data-tag="xref" href="t2235627.xdita#" id="78da1807eb7gq">BatchSetCdnDomainConfig</a> 操作を呼び出して、IP アドレスのブラックリスト/ホワイトリストを更新します。詳細については、「IP ホワイトリストの設定」および「IP ブラックリストの設定」をご参照ください。
このオペレーションは、リクエストで指定されたパラメーターのみを更新します。たとえば、リクエストで ip_list パラメーターを指定しても ip_acl_xfwd パラメーターを指定しなかった場合、ip_acl_xfwd の値は変更されません。
このオペレーションでは、IP リスト、IP ルール、および ルール条件 のみを更新できます。タイプ の構成は変更できません。たとえば、このオペレーションを使用して IP ブラックリストの構成を IP ホワイトリストの構成に変更することはできません。
構成タイプを変更する場合(たとえば、IP ブラックリストから IP ホワイトリストに変更する場合)は、次の手順を実行します。
既存の IP ブラックリスト構成を削除します。
新しい IP ホワイトリスト構成を追加します。
IP アドレスのブラックリスト/ホワイトリスト の削除
ステップ 1:ConfigId の取得
ドメイン構成の照会 オペレーションを呼び出して、ConfigId を取得します。ConfigId をすでに持っている場合は、このステップをスキップしてステップ 2 に進んでください。
ステップ 2:構成の削除
<a baseurl="t5153_v3_16_0.xdita" data-node="3761887" data-root="85023" data-tag="xref" href="t2235633.xdita#" id="31f85d707836s">DeleteSpecificConfig</a> 操作を呼び出し、ConfigId を指定します。