Imgix へのトラフィックをブロックリストおよびアロウリストで制御する
Imgix には、IP ベース、地域(geo)ベース、ユーザーエージェントベースのフィルタリング機能は組み込まれていません。Imgix ソース上で直接アロウリストやブロックリストを作成するための設定オプションはありません。Imgix URL へのアクセスを制御する必要がある場合、それらの制御はお客様自身のインフラストラクチャ内で実装する必要があります。
トラフィックを制御することは、主に次の 3 つの理由から重要です。
- セキュリティ – 制限付きまたはライセンス対象コンテンツへの不正アクセスを防止する
- コスト管理 – 不要な変換処理や帯域使用を削減する
- 不正利用対策 – スクレイピング、パラメータ改ざん、自動化された悪用を抑制する
Imgix の役割は、大規模なメディア変換と配信です。ネットワークポリシーを強制するようには設計されていません。アクセス制限は、リクエストが Imgix ネットワークに到達する前に適用する必要があります。
リクエストがどのように処理されるかの概要については、Imgix Overview を参照してください。
なぜトラフィック制御が重要なのか
リクエストが Imgix に到達すると、変換処理の実行、派生アセットの生成、エッジキャッシュへの保存、帯域の消費が発生する可能性があります。不要または悪意のあるリクエストであっても、一定の評価および処理が行われます。
一般的なリクエストフローは次のとおりです。
End User → Your Infrastructure → Imgix → Origin
自社インフラ内でリクエストをフィルタリングすることで、承認されたトラフィックのみが Imgix に到達するようにできます。これにより、不要な処理を防ぎ、制限付きアセットを保護し、自動化された不正利用への露出を減らすことができます。
アロウリストおよびブロックリストの実装場所
アロウリストおよびブロックリストは、お客様が管理するレイヤーで強制する必要があります。適切な実装場所は、保護対象や必要な制限の厳格さによって異なります。
アプリケーションレイヤー(Web サイトまたは API)
認証されたプロダクトやプラットフォーム内のコンテンツへのアクセスを制限したい場合、最も効果的なのはアプリケーション内で制御を行うことです。
認証および認可ルールを適用することで、Imgix URL を生成するページや API への不正アクセスを防止できます。多くのクローラーや自動化ツールは HTML レスポンスからアセット URL を発見するため、ページアクセスを制限することでアセットの発見を大幅に抑えることができます。
サーバー側で生成される署名付き URL と組み合わせることで、パラメータ改ざんや任意の変換リクエストを防止できます。さらに expires パラメータを使用して有効期限を設定すれば、URL の再利用期間を制限できます。
この方法は、SaaS ダッシュボード、社内ツール、会員限定プラットフォーム、パートナーポータルなどに適しています。
詳細は Securing Assets および URL Expiration を参照してください。
Imgix の前段にリバースプロキシを配置する
IP アロウリストなどのネットワークレベルの制限が必要な場合は、Imgix の前段にリバースプロキシを配置します。
assets.yoursite.com → Reverse Proxy → yourdomain.imgix.net
この構成では、プロキシが各リクエストを転送前に評価します。承認されていない IP 範囲からのリクエストや、必要なヘッダーを欠いたリクエストはその場で拒否され、Imgix には到達しません。
これにより、制限対象コンテンツが承認済みネットワーク外からアクセスされることを防ぎ、不正なトラフィックによる画像処理や帯域消費を抑制できます。B2B 連携、ライセンス配信、契約上厳格なネットワーク制御が求められるケースで一般的に使用されます。
Web Proxy ソースを使用している場合は、Web Proxy Source Setup を参照してください。
CDN または Web Application Firewall (WAF)
CDN や WAF は、Web サイトやプロキシの前段で広範なトラフィックポリシーを適用できます。これらのシステムは大規模トラフィックの評価に適しており、悪意のある IP のブロック、国別制限、ボット対策、レート制限などを実施できます。
アプリケーションレイヤーを保護することは、多くの場合で最も高いセキュリティ効果をもたらします。攻撃者がログインエンドポイント、API、HTML ページにアクセスできなければ、有効な Imgix URL を生成または取得することもできません。その結果、不正利用が下流システムへ影響する前に抑止できます。
配信に関する考慮事項については、Serving Assets および CDN Guidelines を参照してください。
クローラ制御のための robots.txt の使用
アロウリストやブロックリストに加えて、検索エンジンや一般的なクローラーによる Imgix アセットへのアクセス方法を制御したい場合があります。
robots.txt ファイルを Web サイトのドメイン上に設定することで、次のような制御が可能です。
- 特定パスのインデックス登録を防止する
- 画像ディレクトリのクロールを禁止する
- アセット URL の検索エンジン経由での発見を減らす
例:
User-agent: * Disallow: /images/
これは、準拠しているクローラーに対してこれらのパスをクロールまたはインデックスしないよう指示するものです。
ただし、robots.txt はセキュリティ機構ではありません。これは信頼できる検索エンジンが従う自主的な標準です。以下を防ぐことはできません。
- URL への直接アクセス
- 悪意のあるスクレイピング
- 非準拠のボット
robots.txt はインデックス制御や SEO の目的で使用し、制限付きコンテンツの保護には使用しないでください。制限付きアセットの保護には、認証、署名付き URL、プロキシ、WAF ルールを利用してください。
ユーザーエージェントやクローラーに関する関連情報は、Understanding User Agents and Referers を参照してください。
なぜこれらの制御は Imgix 上では実装されないのか
Imgix は IP フィルタリング、国別ブロック、カスタムファイアウォール設定を提供していません。Imgix の責務はメディア変換とグローバル配信であり、リクエストポリシーの強制ではありません。
トラフィック制御を自社インフラで実施することで、以下が可能になります。
- すべてのサービスで一貫したセキュリティポリシーを適用できる
- 要件に応じた柔軟な制御ができる
- 処理が開始される前にリクエストを遮断できる
この責務分離により、Imgix はパフォーマンス最適化に集中しつつ、お客様はアクセス制御を維持できます。
Imgix の前段に CDN を配置する
Imgix はすでにグローバル CDN として動作しています。Imgix の前段に追加の CDN を配置することは技術的には可能ですが、キャッシュおよびルーティングのレイヤーが増えることになります。
追加のエッジレイヤーは、レイテンシの増加、キャッシュ無効化の複雑化、トラブルシューティングの難易度上昇につながる可能性があります。一部のエンタープライズ環境では集中型のトラフィック制御が求められる場合がありますが、その際はクエリパラメータや URL 署名が正しく保持されるよう構成してください。
Imgix の前段に CDN を配置する際の注意
可能であれば、当社が提供する CDN の上にサードパーティ製 CDN を重ねて使用することは推奨していません。Imgix サービスのすべてのコンポーネントは密接に統合されているため、サードパーティ製 CDN を使用するとパフォーマンスが低下し、一部の機能が利用できなくなる可能性があります。
アロウリストとブロックリストの違い
アロウリストは、明示的に承認されたトラフィックのみを許可し、それ以外のすべてのリクエストを拒否します。パートナー IP 制限や社内限定コンテンツなど、厳格なアクセス制御が必要な場合に適しています。
ブロックリストは、既知の悪意あるトラフィックや不要なトラフィックを拒否し、それ以外のリクエストは許可します。公開 Web サイトにおいて不正利用を軽減する目的で一般的に使用されます。
いずれの場合も、制御は Imgix 内ではなく、アプリケーション、プロキシ、CDN、または WAF で実施します。
多層防御
トラフィックフィルタリングは、誰がインフラに到達できるかを制御します。署名付き URL は、Imgix アセットがどのようにリクエストされるかを制御します。
署名付き URL により、パラメータ改ざんの防止、不正な変換の制限、長期的な URL 再利用の抑制が可能になります。これらを認証、上流でのフィルタリング、有効期限設定と組み合わせることで、コンテンツと変換リソースの両方を保護する多層的なセキュリティモデルを構築できます。
関連情報:
Imgix へのアクセス制御は、リクエストが Imgix ネットワークに到達する前に実装する必要があります。これにより、コンテンツの保護、不正利用の抑制、配信コストの管理が可能になります。