CORS のトラブルシューティング - Amazon Simple Storage Service

CORS のトラブルシューティング

CORS 設定を行ったバケットにアクセス中に予期しない動作が発生した場合は、以下のステップを試してトラブルシューティングを行います。

  1. バケットに CORS 設定が行われていることを確認します。

    CORS 設定を行うと、コンソールでは、[Properties] (プロパティ) バケットの [Permissions] (アクセス権限) セクションに [Edit CORS Configuration] (CORS 設定の編集) リンクが表示されます。

  2. 任意のツールを使用してリクエストとレスポンスの全体を取り込みます。Amazon S3 が受信するすべてのリクエストには、リクエストのデータと一致する、以下のような CORS ルールが存在している必要があります。

    1. リクエストに Origin ヘッダーがあること。

      ヘッダーがない場合は、クロスオリジンリクエストとして扱われず、CORS レスポンスヘッダーをレスポンスに入れて送信されません。

    2. リクエストの Origin ヘッダーが指定された AllowedOriginCORSRule 要素の少なくとも 1 つと一致していること。

      リクエストの Origin ヘッダーのスキーム、ホスト、およびポートの値が AllowedOriginCORSRule 要素と一致していること。たとえば、オリジン CORSRule を許可するように http://www.example.com を設定した場合は、リクエスト内に https://www.example.comhttp://www.example.com:80 のオリジンがあると、設定で許可されているオリジンと一致しなくなります。

    3. リクエスト内のメソッド (または、プリフライトリクエストの場合は Access-Control-Request-Method に指定したメソッド) が、同じ AllowedMethod 内の CORSRule 要素の 1 つであること。

    4. プリフライトリクエストの場合、それに Access-Control-Request-Headers ヘッダーが含まれているときに、CORSRuleAllowedHeader ヘッダーのすべての値に対する Access-Control-Request-Headers エントリが含まれていること。