このトピックでは、IP ブラックリストとホワイトリスト、Referer ベースのホットリンク防止、URL 署名、リモート認証などのアクセスコントロール機能の設定に関するよくある質問をまとめています。 HTTP 403 レスポンスや異常なトラフィックなどの問題のトラブルシューティングについては、「アクセスコントロールのトラブルシューティングガイド」をご参照ください。
IP ブラックリストとホワイトリスト、およびオリジン保護
IP ブラックリストまたはホワイトリストを設定する場合、IP アドレス範囲は 1 つの IP アドレスエントリとしてカウントされますか、それとも複数としてカウントされますか。
CDN または で IP ブラックリストまたはホワイトリストを設定する場合、約 700 個の IPv6 アドレスまたはアドレス範囲と、2,000 個の IPv4 アドレスまたはアドレス範囲を設定できます。
1 つの IP アドレス範囲は、1 つの IP アドレスエントリとしてカウントされます。
オリジンサーバーのホワイトリストに CDN を追加したいのですが、Alibaba Cloud CDN がオリジンへのアクセスに使用するノードの IP アドレスは取得できますか。
1 日のピーク帯域幅が 1 Gbps 以上の場合、チケットを送信 にて、DescribeL2VipsByDomain API を呼び出す権限を申請できます。この API は、指定されたドメイン名の L2 ノードの IP アドレス (つまり、オリジンフェッチ IP アドレスのリスト) を返します。
要件を満たさない場合は、ESA に移行し、オリジン保護機能を使用することを推奨します。この機能を使用すると、コンソールでオリジンフェッチノードの IP アドレスのリストを取得できます。
ブラックリストに登録されている IP アドレスが、リソースにアクセスできるのはなぜですか。
CDN はサーバーとして機能するため、クライアントから開始された接続を制御することはできません。IP ブラックリストを設定すると、ブラックリストに登録された IP アドレスからのリクエストが CDN ノードに到達したときにエラーコード 403 が返され、CDN ログにはこれらのリクエストが引き続き記録されます。ログの表示方法の詳細については、「ログのダウンロード」をご参照ください。
注: HTTP 403 が返された場合、実際のリソースコンテンツは送信されず、レスポンスヘッダーのみが転送されますが、少量のトラフィック料金は発生します。通常のログの遅延は一般的に 24 時間以内です。ブラックリストによるブロックをタイムリーに分析する必要がある場合は、リアルタイムログ機能を有効にすることを推奨します。この機能は、収集したログを分析のためにリアルタイムで Log Service にプッシュします。
クライアントのリアル IP アドレスを取得するにはどうすればよいですか。
CDN を利用すると、X-Forwarded-For フィールドからクライアントのリアル IP アドレスを取得できます。詳細については、「クライアントの送信元 IP アドレスの取得」をご参照ください。
URL 署名とリモート認証
Alibaba Cloud CDN の URL 署名とリモート認証を同時に有効にできますか。
はい。Alibaba Cloud CDN の URL 署名とリモート認証は同時に有効にできます。リクエストは、まず URL 署名を通過し、次にリモート認証を通過します。
リモート認証では、認証サーバーを内部アドレスとして設定できますか。
いいえ。リモート認証サーバーはパブリックアドレスとして設定する必要があります。
認証サーバーから返されたステータスコードが成功コードでも失敗コードでもない場合、CDN がデフォルトでリクエストを許可するのはなぜですか。
異常な状況ですべてのユーザーリクエストがブロックされるのを防ぐため、認証サーバーから返されたステータスコードが成功コードでも失敗コードでもない場合、CDN ノードはデフォルトでユーザーリクエストを許可します (たとえば、認証の成功コードが 200 に設定されていて、認証サーバーが 201 を返した場合、リクエストは許可されます)。
コンソールで [他のステータスコードを許可] パラメーターを設定して、認証サーバーから返された他のステータスコードを許可するかどうかを選択できます。
リモート認証サーバーに障害が発生した場合やダウンした場合、CDN はすべてのリクエストを直接許可しますか。
いいえ。リモート認証サーバーに障害が発生した場合やダウンした場合、CDN と認証サーバー間のデータ交換がタイムアウトした後、CDN は設定された [タイムアウト後のアクション] パラメーターに基づいて、認証中にタイムアウトしたユーザーリクエストを許可するかどうかを決定します。