Q34 — AWS DVA-C02 第3章
第 34/100 問 | ← 第3章
静的ウェブサイトがAmazon S3バケットにホストされています。このサイトのHTMLページの1つは、JavaScriptを用いて別のAmazon S3バケットから画像を読み込んでいます。しかし、ユーザーがウェブサイトを閲覧しても、これらの画像が表示されません。この問題の原因として考えられるものは何ですか?
- A. 参照先のAmazon S3バケットが別のリージョンに配置されている。
- B. 画像は、同じAmazon S3バケット内に保存する必要があります。
- C. Amazon S3バケットが配置されているセキュリティグループは、80番ポートを開く必要があります。
- D. Amazon S3バケットでクロスオリジンリソース共有(CORS)を有効にする必要があります。 ✓
正解: D. Amazon S3バケットでクロスオリジンリソース共有(CORS)を有効にする必要があります。
解説
静的ウェブサイトのHTMLページが別のS3バケットから画像を読み込む場合、これはクロスオリジンアクセスに該当し、ブラウザの同一オリジンポリシーによってブロックされる可能性があります。この問題を解決するには、参照先S3バケットでクロスオリジンリソース共有(CORS)を有効化する必要があります。そうでなければ、画像の読み込みが拒否され、表示されません。Aについては、リージョンの違いは画像非表示の直接的な原因とは限りません。Bについては、画像は必ずしも同一バケットに保存する必要はありません。Cについては、S3バケットはセキュリティグループを用いないため、80番ポートの開放は関係ありません。以上より、この問題の最も可能性の高い原因はD、すなわちAmazon S3バケットでCORSを有効化することです。 【灯笼考证提供:swufelp1999】