使用標準政策設定已簽章的 Cookie - Amazon CloudFront

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

使用標準政策設定已簽章的 Cookie

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

以下範例顯示當您使用與檔案的 URL 中的分佈關聯的網域名稱時,一個已簽章的 Cookie 的 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

以下範例顯示當您在檔案的 URL 中使用備用網域名稱 example.org 時,一個已簽章的 Cookie 的 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

如果要在 URL 中使用備用網域名稱 (如 example.com),則無論您是否指定了 Domain 屬性,都必須將備用網域名稱新增到分佈中。如需詳細資訊,請參閱 所有分佈設定參考 主題中的 備用網域名稱 (CNAME)

為使用標準政策的已簽章 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:// 開頭。

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

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

DateLessThan

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

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

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

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

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

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

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

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

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

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