すべてのプロダクト
Search
ドキュメントセンター

CDN:URL署名の設定

最終更新日:Feb 22, 2024

デフォルトでは、Alibaba Cloud CDN によって配布されるコンテンツは公開されています。 ユーザーはURLを使用してコンテンツにアクセスできます。 リソースのホットリンクや不正アクセスを防止する場合は、リファラーホワイトリストとブラックリスト、IPホワイトリストとブラックリスト、およびURL署名を使用してアクセス制御を管理できます。 URL署名は、URLに署名文字列とタイムスタンプを追加して、アクセス制御を最適化します。

URL署名のしくみ

ポイントオブプレゼンス (POP) は、オリジンサーバーと連携してURL署名を実装し、より安全で信頼性の高い方法でオリジンサーバー上のリソースを保護します。 URL署名には、次のオブジェクトが含まれます。

  • オリジンサーバー: オリジンサーバーは、署名アルゴリズムや暗号キーなどのURL署名ルールに基づいてURLに署名します。 次に、オリジンサーバーは署名されたURLをクライアントに返します。

  • クライアント: クライアントは要求を開始し、署名されたURLを認証のためにPOPに送信します。

  • POP: POPは、署名およびタイムスタンプを含む、要求によって搬送される署名情報を検証する。

image
  1. オリジンサーバーで、署名アルゴリズムや暗号化キーなどのURL署名ルールを設定する必要があります。

    たとえば、http:// DomainName/timestamp/md5hash/FileNameは、オリジンサーバーによって署名されたURLです。

  2. クライアントがURLにアクセスしようとすると、前の図の手順2と手順3に示すように、オリジンサーバーはURL署名ルールに基づいてURLに署名し、署名されたURLをクライアントに返します。

  3. 前の図の手順4に示すように、クライアントは署名付きURLを使用してPOPからリソースを要求します。

  4. POPは、署名されたURL内の署名およびタイムスタンプを含む署名情報を検証し、要求が有効かどうかを判定する。

    • リクエストが認証に失敗した場合、POPはリクエストを拒否します。

    • 要求が認証に合格すると、POPは要求に応答する。

      説明
      • 要求されたリソースがPOPにキャッシュされていない場合、POPはURLからURL署名パラメーターを削除し、リクエストがオリジンサーバーにリダイレクトされる前にURLを元のバージョンに復元します。 たとえば、URLはhttp:// DomainName/FileNameに復元されます。 次に、元のURLを使用してキャッシュキーが生成されるか、リクエストがオリジンサーバーにリダイレクトされます。

      • リクエストが認証を通過した後、URL内の等号 (=) やプラス記号 (+) などの特殊文字がエスケープされます。

URL署名の設定と有効化

重要
  • URL署名を有効にする前に、オリジンサーバーで、署名アルゴリズムや暗号化キーなどのURL署名ルールが設定されていることを確認してください。

  • POPの認証ロジックは、オリジンサーバーの認証ロジックと同じである必要があります。

  1. Alibaba Cloud CDNコンソール

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. [ドメイン名] ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。

  4. ドメイン名の左側のナビゲーションツリーで、リソースアクセス制御 をクリックします。

  5. URL 認証 タブをクリックします。

  6. URL 認証 セクションで、変更 をクリックします。

  7. 認証 URL ダイアログボックスで、URL署名をオンにし、次の表の説明に従ってパラメーターを設定します。

    パラメーター

    説明

    認証タイプ

    Alibaba Cloud CDNは、3つのURL署名タイプをサポートしています。 ビジネス要件に基づいて署名タイプを選択し、オリジンサーバーのリソースを保護できます。 サポートされる署名タイプは次のとおりです。

    説明

    URL署名が失敗した場合、HTTP 403ステータスコードが返されます。 考えられる原因は次のとおりです。

    • 無効なMD5値

      例: X-Tengine-Error: req authによって拒否されました: invalid md5hash=de7bfdc915ced05e17380a149bd760be

    • 無効なタイムスタンプ

      例: X-Tengine-Error: req authによる拒否: expired timestamp=1439469547

    マスターキー

    選択した署名タイプの主キーを指定します。 キーの長さは6 ~ 128文字で、英数字を使用できます。

    バックアップキー

    選択した署名タイプのセカンダリキーを指定します。 キーの長さは6 ~ 128文字で、英数字を使用できます。 主キーまたは副キーを指定する必要があります。

    TTL

    署名付きURLのtime-to-live (TTL) 値を指定します。 ユーザーは、署名付きURLの有効期限が切れる前にCDN POPにアクセスできます。 署名付きURLの有効期限は、タイムスタンプ値とTTL値によって決まります。

    • 単位は秒です。

    • 有効な値: 1 ~ 31536000

    • デフォルト値: 1800 (30分) 。

    • たとえば、署名付きURLのタイムスタンプは2020-08-15 15:00:00 (UTC + 8) で、TTL値は1800です。 この場合、署名付きURLは2020年8月15日15:30:00 (UTC + 8) まで有効です。

    ルール条件

    ルール条件は、構成が要求に適用されるかどうかを決定するために要求内のパラメータを識別できる。

    • 条件を使用しない

    • ルールエンジンで設定されたルール条件を選択します。 詳細については、「ルールエンジン」をご参照ください。

  8. OK をクリックします。

URL署名結果の確認

認証ロジックが正しく実装されていることを確認するには、Alibaba Cloud CDNコンソールでテストを実行し、URLに正しく署名できるかどうかを確認することを推奨します。

  1. 認証 URL の生成 セクションで、元の URL およびその他のパラメーターを設定します。

    生成鉴权URL

    パラメーター

    説明

    元の URL

    https://www.aliyun.comなどの完全なURLを入力します。

    認証タイプ

    [URL署名の設定と有効化] セクションで指定したURL署名タイプを選択します。

    認証キー

    [URL署名の設定と有効化] セクションで指定したマスターキーまたはバックアップキーを入力します。

    TTL

    [URL署名の設定と有効化] セクションで指定した署名URLの有効期間を入力します。 単位は秒です。

  2. 作成中 をクリックし、認証 URLTimestamp を取得します。

    URL鉴权

URL署名の無効化

重要

POPでURL署名が無効になっていても、ユーザーリクエストにURL署名パラメーターが含まれている場合、POPはURL署名パラメーターを削除できません。 この場合、リクエストはPOPのキャッシュにヒットすることができず、オリジンサーバーにリダイレクトされます。 これにより、オリジンサーバーのネットワークトラフィックとデータ転送料金が増加します。 URL署名を無効にする場合は、オリジンサーバーとPOPでURL署名が無効になっていることを確認してください。

image
  1. In the Alibaba Cloud CDNコンソールで、URL 認証 セクションに移動し、変更 をクリックして、URL署名をオフにします。

  2. オリジンサーバーで、URL署名設定を削除します。

関連するAPI操作