このページでは、コンテンツを閲覧できるユーザーとその期間をより細かく制御する方法について説明します。Cloud CDN 署名付き URL と Service Extensions を使用すると、最適化された画像への安全なアクセスを期間限定で提供できます。
標準の署名なし URL では、ユーザーはブラウザでクエリ パラメータ文字列を手動で変更または削除できます。ビジネス ロジックがプライバシーまたはアクセス制御のために画像変換に依存している場合、署名なしのクエリには次のリスクがあります。
メタデータの漏洩: 攻撃者は
metadata,preserve=noneなどのパラメータを削除して、ソースファイルに含まれる隠された GPS 座標や機密性の高いカメラ情報を取得する可能性があります。視覚的な編集の回避: パラメータを使用して、切り抜き、サイズ変更、ぼかしで顔、ナンバープレート、機密情報を含む背景を非表示にしている場合、ユーザーがこれらのパラメータを削除して、編集されていない画像を表示する可能性があります。
署名付き URL と Service Extensions を使用すると、不要な変換リクエストを防ぐことができます。
署名付き URL による防止
これらのリスクを軽減するには、Cloud CDN 署名付き URL を構成してルートを保護します。URL が署名されると、imop クエリ パラメータ構成文字列全体が、Cloud CDN がすべてのリクエストで検証する暗号署名の一部になります。ユーザーがオペレーションやパラメータ(sizes など)を変更しようとすると、Cloud CDN は暗号署名を自動的に検証し、リクエストを拒否して HTTP 403 Forbidden ステータス コードを返します。
詳細については、署名付き URL をご覧ください。
Service Extensions を使用した許可リスト登録
Service Extensions を使用すると、デベロッパーはカスタムのプログラム可能なロジックを Cloud CDN データプレーンに挿入できます。このカスタム ロジックにより、画像最適化機能がリクエストを処理する前に、高度なリクエスト操作とセキュリティの適用が可能になります。
Service Extensions を使用すると、imop クエリ文字列を解析し、そのパラメータを固定の許可リストと照合できます。たとえば、事前定義されたレスポンシブな幅(200、400、800)のみを許可できます。
次の例は、未承認のリクエストがエッジ キャッシュをバイパスしようとする方法と、Service Extensions がそのようなリクエストを処理する方法を示しています。
クライアントがキャッシュに保存されていない非標準の画像サイズをリクエストします。
image.jpg?imop=Resize,width=401Service Extensions は、Cloud CDN エッジでリクエストをインターセプトします。クエリ文字列を解析して
transformation parameter: width=401を抽出します。Service Extensions は、
401を事前定義されたレスポンシブ デザインのブレークポイントと比較します。許可リスト:
200、400、800401が許可リストにないことを検出すると、Service Extensions はリクエストを直ちに終了し、HTTP 403(Forbidden)エラーを返すか、パラメータを削除して元の画像を提供します。
リクエストは処理されないため、エッジ コンピューティングの枯渇を防ぐことができます。
詳細については、Service Extensionsをご覧ください。