Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

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

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

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

    手順については、『Amazon Simple Storage Service コンソールユーザーガイド』の「バケットアクセス権限の編集」を参照してください。CORS 設定を行うと、コンソールで [プロパティ] バケットの [Permissions (アクセス許可)] セクションに [CORS 設定の編集] リンクが表示されます。

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

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

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

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

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

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

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