提供私有內容服務的概觀 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提供私有內容服務的概觀

您可以透過兩種方式控制使用者對私人內容的存取權:

限制對快取中檔案的 CloudFront存取

您可以設定 CloudFront 為要求使用者使用已簽署的 URL 或已簽署Cookie 存取您的檔案。然後,您可以開發應用程式,以建立和分配已簽署的 URL 給驗證過的使用者,或傳送 Set-Cookie 標頭,這是經驗證之使用者設定的已簽署 Cookie。(若要提供一些使用者長期存取少量檔案,您還可以手動建立簽章的 URL。)

當您建立已簽章的 URL 或已簽章的 Cookie,以控制存取您的檔案時,可以指定下列限制:

  • 結束日期和時間,之後 URL 不再有效。

  • (選用) URL 生效的日期和時間。

  • (選用) 可用於存取內容的電腦的 IP 地址或地址範圍。

使用公有-私有金鑰對中的私有金鑰對已簽署的 URL 或已簽署的 Cookie 的一部分進行雜湊和簽名。當有人使用已簽署的 URL 或已簽署的 Cookie 存取檔案時,請 CloudFront 比較 URL 或 Cookie 的已簽署和未簽署部分。如果它們不匹配,則 CloudFront 不提供文件。

您必須使用 RSA-SHA1 來簽署網址或餅乾。 CloudFront 不接受其他算法。

限制對 Amazon S3 儲存貯體中檔案的存取

您可以選擇性地保護 Amazon S3 儲存貯體中的內容,以便使用者可以透過指定的 CloudFront 分發存取內容,但無法使用 Amazon S3 URL 直接存取內容。這樣可以防止某人繞過 CloudFront 並使用 Amazon S3 URL 來取得您想要限制存取的內容。使用簽章 URL 不需要此步驟,但我們建議執行此作業。

若要求使用者透過 CloudFront URL 存取您的內容,請執行下列工作:

  • 授予 CloudFront 原始存取控制權限,以讀取 S3 儲存貯體中的檔案。

  • 建立來源存取控制,並將其與您的 CloudFront 發行版產生關聯。

  • 移除其他人使用 Amazon S3 URL 讀取檔案的許可。

如需詳細資訊,請參閱 限制對 Amazon S3 原始伺服器的存取

在自訂原始伺服器上限制存取檔案

如果您使用自訂原始伺服器,您可以選擇性設定自訂標頭來限制存取。 CloudFront 若要從自訂原始檔案取得檔案,必須CloudFront 使用標準 HTTP (或 HTTPS) 要求來存取檔案。但是,通過使用自定義標題,您可以進一步限制對內容的訪問,以便用戶只能通過訪問它CloudFront,而不是直接訪問它。使用簽章 URL 不需要此步驟,但我們建議執行此作業。

若要要求使用者透過存取內容 CloudFront,請變更 CloudFront 發行版中的下列設定:

原始伺服器自訂標頭

設定 CloudFront 為將自訂標頭轉寄至您的來源。請參閱 設定 CloudFront 為將自訂標頭新增至原始請求

檢視器通訊協定政策

設定您的分佈以要求檢視器使用 HTTPS 來存取 CloudFront。請參閱 檢視器通訊協定政策

原始伺服器通訊協定政策

將您的發行版設定為 CloudFront 要求使用與檢視者相同的通訊協定,將請求轉寄至來源。請參閱 通訊協定 (僅限自訂原始伺服器)

完成這些變更後,請在自訂來源上更新您的應用程式,以僅接受包含您設定 CloudFront 要傳送之自訂標頭的要求。

檢視器通訊協定政策原始伺服器通訊協定政策的組合可確保自訂標頭在傳輸過程中加密。但是,我們建議您定期執行以下操作,以旋轉轉 CloudFront 發到您的來源的自定義標題:

  1. 更新您的 CloudFront 發行版以開始將新標題轉發到您的自定義來源。

  2. 更新您的應用程式以接受新的標頭,以確認要求來自 CloudFront。

  3. 當要求不再包含您要取代的標頭時,請將應用程式更新為不再接受舊標頭,以確認要求來源 CloudFront。