使用固定政策設定已簽署 Cookie - Amazon CloudFront

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

使用固定政策設定已簽署 Cookie

若要使用標準政策設定已簽章的 Cookie,請完成以下步驟。若要建立簽章,請參閱 為使用固定政策的已簽章 Cookie 建立簽章

下列範例顯示當您在 中為檔案使用與分佈相關聯的網域名稱時,一個已簽署 Cookie URLs的Set-Cookie標頭:

Set-Cookie: CloudFront-Expires=1426500000; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly

下列範例顯示當您在 中使用替代網域名稱 example.org 作為檔案時,一個已簽署 Cookie URLs的Set-Cookie標頭:

Set-Cookie: CloudFront-Expires=1426500000; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/images/*; Secure; HttpOnly

如果您想要在 中使用替代網域名稱,例如 example.comURLs,無論您是否指定 Domain 屬性,都必須將替代網域名稱新增至您的分佈。如需詳細資訊,請參閱 分佈設定參考 主題中的 替代網域名稱 (CNAMEs)

為使用固定政策的已簽章 Cookie 建立簽章

若要為使用固定政策的已簽章 Cookie 建立簽章,請完成下列程序。

為使用固定政策的已簽章 Cookie 建立政策陳述式

當您設定使用標準政策的簽章 Cookie 時,該 CloudFront-Signature 屬性是政策聲明的雜湊及已簽章的版本。對於使用標準政策的已簽章的 Cookie,您不會將政策聲明包括在 Set-Cookie 標頭中,就像使用自訂政策的已簽章的 Cookie 一樣。若要建立政策陳述式,請完成下列步驟。

為使用標準政策的已簽章的 Cookie 建立政策聲明
  1. 使用下列JSON格式和 UTF-8 字元編碼來建構政策陳述式。完全按照規定包含所有標點符號和其他常值。如需有關 ResourceDateLessThan 參數的詳細資訊,請參閱 您在政策陳述式中為已簽署 Cookie 標準政策所指定的值

    { "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
  2. 從政策陳述式中移除所有空格 (包括標籤和新行字元)。您可能必須在應用程式的程式碼的字串中包含逸出字元。

您在政策陳述式中為已簽署 Cookie 標準政策所指定的值

當您為標準政策建立政策聲明時,您可以指定以下值:

資源

URL 包含查詢字串的基本,如果有的話,例如:

https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

您只能為 Resource 指定一個值。

注意下列事項:

  • 通訊協定 – 此值必須以 http://https:// 開頭。

  • 查詢字串參數 – 如果沒有查詢字串參數,請省略問號。

  • 替代網域名稱 – 如果您在 中指定替代網域名稱 (CNAME)URL,則必須在參考網頁或應用程式中的檔案時指定替代網域名稱。請勿URL為 檔案指定 Amazon S3。

DateLessThan

以 Unix 時間格式 (以秒為單位) 和國際標準時間 () URL表示的過期日期和時間UTC。不要將值括在引號中。

例如,2015 年 3 月 16 日上午 10:00 會以 Unix 時間格式UTC轉換為 1426500000。

這個值必須符合 CloudFront-Expires 標頭中 Set-Cookie 屬性的值。不要將值括在引號中。

如需詳細資訊,請參閱 當 CloudFront 檢查已簽署 Cookie 中的過期日期和時間時

標準政策的範例政策陳述式

當您在已簽署的 Cookie 中使用下列範例政策陳述式時,使用者可以存取 檔案,https://d111111abcdef8.cloudfront.net/horizon.jpg直到 2015 年 3 月 16 日上午 10:00UTC:

{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes", "Condition": { "DateLessThan": { "AWS:EpochTime": 1426500000 } } } ] }

簽署政策陳述式,為使用固定政策的已簽章 Cookie 建立簽章

要為 CloudFront-Signature 標頭中的 Set-Cookie 屬性建立值,請對您在 為使用標準政策的已簽章的 Cookie 建立政策聲明 中建立的政策聲明進行雜湊和簽署。

如需有關如何對政策聲明進行雜湊、簽章和編碼的詳細資訊和範例,請參閱以下主題: