使用跨來源資源分享 (CORS) - Amazon Simple Storage Service

歡迎使用新的 Amazon S3 使用者指南! 新的《Amazon S3 使用者指南》結合了三本舊版指南的資訊和指示:《Amazon S3 開發者指南》《Amazon S3 主控台使用者指南》《Amazon S3 入門指南》

使用跨來源資源分享 (CORS)

跨來源資源分享 (CORS) 會定義一種方式,讓載入單一個網域的用戶端 Web 應用程式,能與不同網域中的資源互動。透過 CORS 支援,您可以使用 Amazon S3 建立功能豐富的用戶端 Web 應用程式,而且也可以選擇性地允許跨來源存取您的 Amazon S3 資源。

本節提供 CORS 的概觀。各個副主題則說明使用 Amazon S3 主控台啟用 CORS 的方式,或是透過 Amazon S3 REST API 及 AWS 開發套件以程式設計的方式啟用。

跨來源資源分享:使用案例情境

以下為使用 CORS 的情境範例。

案例 1

假設您正在名為 website 的 Amazon S3 儲存貯體中託管網站,如 使用 Amazon S3 託管靜態網站 所述。您的使用者載入了網站端點:

http://website.s3-website.us-east-1.amazonaws.com

現在您想在存放於此儲存貯體中的網頁使用 JavaScript,以藉由儲存貯體的 Amazon S3 API 端點 (website.s3.us-east-1.amazonaws.com) 對相同的儲存貯體進行驗證 GET 及 PUT 要求。瀏覽器一般會封鎖 JavaScript 進行這類要求,但您可以透過 CORS 設定儲存貯體,明確地啟用來自 website.s3-website.us-east-1.amazonaws.com 的跨來源要求。

案例 2

假設您希望從 S3 儲存貯體託管一個 Web 字型。再者,瀏覽器需要 CORS 檢查(也稱為預先檢查),來載入 Web 字體。您可以設定裝載 Web 字體的儲存貯體,允許任何來源發出這些要求。

Amazon S3 如何評估儲存貯體上的 CORS 組態?

當 Amazon S3 從瀏覽器接收到預檢要求時,會評估儲存貯體的 CORS 組態,並使用第一個符合來源瀏覽器要求的 CORSRule 規則來啟用跨來源要求。符合規則必須滿足下列條件:

  • 要求的 Origin 標頭必須符合 AllowedOrigin 元素。

  • 要求的方法 (例如 GET 或 PUT) 或預檢 Access-Control-Request-Method 要求的 OPTIONS 標頭,必須是 AllowedMethod 元素中的其中之一。

  • 預檢要求上要求的 Access-Control-Request-Headers 標頭中所列出之每一個標頭,都必須符合 AllowedHeader 元素。

注意

在儲存貯體上啟用 CORS 時,仍繼續適用 ACL 及政策。

如需使用 CORS 的詳細資訊,請參閱下列主題。