限制對檔案的存取 - Amazon CloudFront

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

限制對檔案的存取

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

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

您可以設定 CloudFront ,以要求使用者使用已簽署URLs已簽署的 Cookie 存取您的檔案。然後,您可以開發應用程式,以建立和分發簽署URLs給已驗證的使用者,或傳送為已驗證使用者設定已簽章 Cookie 的Set-Cookie標頭。(若要讓少數使用者長期存取少量檔案,您也可以URLs手動建立簽署。)

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

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

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

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

已簽章URL或已簽章 Cookie 的一部分,會使用公有私有金鑰對中的私有金鑰進行雜湊和簽章。當有人使用已簽署URL或已簽章的 Cookie 來存取檔案時, 會 CloudFront 比較 URL或 Cookie 的已簽署和未簽署部分。如果不相符, CloudFront 則不會提供檔案。

您必須使用 RSA-SHA1 簽署URLs或 Cookie。 CloudFront 不接受其他演算法。

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

您可以選擇性地保護 Amazon S3 儲存貯體中的內容,讓使用者可以透過指定的 CloudFront 分佈存取,但無法使用 Amazon S3 直接存取URLs。這可防止某人繞過 CloudFront 和使用 Amazon S3 URL來取得您想要限制存取的內容。此步驟不需要使用已簽署的 URLs,但我們建議使用。

若要要求使用者透過 存取您的內容 CloudFront URLs,請執行下列任務:

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

  • 建立原始伺服器存取控制,並將其與您的 CloudFront 分佈建立關聯。

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

如需詳細資訊,請參閱限制對 Amazon 簡單存儲服務來源的訪問

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

如果您使用自訂原始伺服器,您可以選擇性設定自訂標頭來限制存取。若要從自訂原始伺服器 CloudFront 取得檔案,必須使用CloudFront 標準 HTTP(或 HTTPS) 請求來存取檔案。但是,透過使用自訂標頭,您可以進一步限制對內容的存取,以便使用者只能透過 存取它CloudFront,而不是直接存取。此步驟不需要使用已簽署的 URLs,但我們建議使用。

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

原始伺服器自訂標頭

設定 CloudFront 將自訂標頭轉送至您的原始伺服器。請參閱 設定 CloudFront 為將自訂標頭新增至原始請求

檢視器通訊協定政策

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

原始伺服器通訊協定政策

將分佈設定為要求 CloudFront 使用與檢視器相同的通訊協定,以將請求轉送至原始伺服器。請參閱 通訊協定 (僅限自訂原始伺服器)

進行這些變更之後,請更新您的自訂原始伺服器應用程式,以僅接受包含您設定 CloudFront 傳送之自訂標頭的請求。

檢視器通訊協定政策原始伺服器通訊協定政策的組合可確保自訂標頭在傳輸過程中加密。不過,我們建議您定期執行下列動作,以輪換 CloudFront 轉送至原始伺服器的自訂標頭:

  1. 更新您的 CloudFront 分佈,開始將新的標頭轉送至您的自訂原始伺服器。

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

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