使用固定原則設定已簽署的 Cookie - Amazon CloudFront

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

使用固定原則設定已簽署的 Cookie

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

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

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 的Set-CookieURLs標頭:

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.com in)URLs,則無論您是否指定屬性,都必須將替代網域名稱新增至您的分發中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 時以 Unix 時間格式UTC轉換為 142650 萬。

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

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

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

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

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

簽署政策聲明以為使用固定策略的已簽名 cookie 創建簽名

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

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