限制對檔案的存取 - Amazon CloudFront

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

限制對檔案的存取

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

限制對 CloudFront緩存中文件的訪問

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

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

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

  • (選擇性) URL 變為有效的日期和時間。

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

已簽署URL或已簽署 Cookie 的其中一部分會使用來自公開私密金鑰 key pair 的私密金鑰進行雜湊處理和簽署。當某人使用已簽署URL或已簽署的 Cookie 存取檔案時,請 CloudFront 比較URL或 Cookie 的已簽署和未簽署部分。如果它們不匹配,則 CloudFront 不提供文件。

您必須使用 RSA-SHA1 進行簽名URLs或餅乾。 CloudFront 不接受其他算法。

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

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

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

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

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

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

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

限制存取自訂原點上的檔案

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

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

原始伺服器自訂標頭

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

檢視器通訊協定政策

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

原始伺服器通訊協定政策

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

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

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

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

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

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