URL 使用固定政策建立已簽章 - Amazon CloudFront

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

URL 使用固定政策建立已簽章

若要URL使用固定政策建立已簽章的 ,請完成下列步驟。

URL 使用固定政策建立已簽章
  1. 如果您使用 .NET 或 Java 來建立已簽署的 URLs,而且尚未將金鑰對的私有金鑰從預設 .pem 格式重新格式化為與 .NET 或 Java 相容的格式,請立即執行此操作。如需詳細資訊,請參閱重新格式化私有金鑰 (僅限 NET和 Java)

  2. 依列出的順序串連下列值,複寫此範例所示格式,並簽署 URL:

    https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Expires=1357034400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F

    移除所有空格 (包括索引標籤和新行字元)。您可能必須在應用程式的程式碼的字串中包含逸出字元。所有值都有 類型String

    1.Base URL for the file

    基礎URL是 CloudFront URL如果您未使用已簽署的 時用來存取檔案的 URLs,如果有的話,包括您自己的查詢字串參數。在上述範例中,基底URL為 https://d111111abcdef8.cloudfront.net/image.jpg。如需 URLs 分佈格式的詳細資訊,請參閱 自訂 中檔案的URL格式 CloudFront

    • 以下是 CloudFront URL分佈中的映像檔案 (使用 CloudFront 網域名稱)。請注意,image.jpg 位於 images 目錄中。中檔案的路徑URL必須與HTTP伺服器上或 Amazon S3 儲存貯體中的檔案路徑相符。

      https://d111111abcdef8.cloudfront.net/images/image.jpg

    • 下列 CloudFront URL包含查詢字串:

      https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large

    • 以下是 CloudFront URLs分佈中的映像檔案。兩者都使用替代網域名稱。第二個包含查詢字串:

      https://www.example.com/images/image.jpg

      https://www.example.com/images/image.jpg?color=red

    • 以下是 CloudFront URL 分佈中使用替代網域名稱和HTTPS通訊協定的影像檔案:

      https://www.example.com/images/image.jpg

    2. ?

    ? 表示查詢字串參數遵循基礎 URL。? 即使您沒有自己的任何查詢字串參數,也請包含 。

    3.Your query string parameters, if any&

    此值是選用的。如果您希望新增自己的查詢字串參數,例如:

    color=red&size=medium

    然後在 參數之前,在 ?和 之後新增 Expires 參數。在極少數情況下,您可能需要將查詢字串參數放在 Key-Pair-Id 之後。

    重要

    您的參數不能被命名為 ExpiresSignatureKey-Pair-Id

    如果您新增自己的參數,請在每個參數&之後附加 ,包括最後一個參數。

    4. Expires= date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)

    您希望 URL 停止允許存取檔案的日期和時間。

    以 Unix 時間格式 (以秒為單位) 和國際標準時間 () 指定到期日期和時間UTC。例如,2013 年 1 月 1 日上午 10:00 1357034400 會以 Unix 時間格式UTC轉換為 ,如本主題開頭的範例所示。若要使用 epoch 時間,請將 32 位元整數用於不晚於 的日期 2147483647(2038 年 1 月 19 日 03:14:07UTC)。如需 的相關資訊UTC,請參閱 RFC 3339,網際網路上的日期和時間:時間戳記

    5. &Signature= hashed and signed version of the policy statement

    JSON 政策陳述式的雜湊、簽章和 base64 編碼版本。如需詳細資訊,請參閱為使用固定政策URL的已簽章建立簽章

    6. &Key-Pair-Id= public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature

    CloudFront 公有金鑰的 ID,例如 K2JCJMDEHXQW5F。公有金鑰 ID 會說明要使用 CloudFront 哪個公有金鑰來驗證簽署的 URL. CloudFront compared the signature 中的資訊與政策陳述式中的資訊,以確認 URL 尚未遭到竄改。

    此公有金鑰必須屬於分佈中信任的簽署者金鑰群組。如需詳細資訊,請參閱指定可以建立已簽署URLs和已簽署 Cookie 的簽署者

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

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

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

當您URL使用固定政策建立已簽章時, Signature 參數是政策陳述式的雜湊和已簽章版本。對於使用固定政策的已簽署 URLs ,您不會在 中包含政策陳述式URL,就像使用自訂政策URLs的已簽署 一樣。若要建立政策聲明,請執行下列程序。

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

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

您在政策陳述式中為URL使用固定政策的已簽章 指定的值

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

資源
注意

您只能為 Resource 指定一個值。

URL 包含查詢字串的基本,如果有,但不包括 CloudFront ExpiresSignatureKey-Pair-Id 參數,例如:

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

注意下列事項:

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

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

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

DateLessThan

以 Unix 時間格式 (以秒為單位) 和國際標準時間 () URL表示的到期日期和時間UTC。例如,2013 年 1 月 1 日上午 10:00 會以 Unix 時間格式UTC轉換為 1357034400。

此值必須符合已簽署 中Expires查詢字串參數的值URL。不要將值括在引號中。

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

使用固定政策URL的已簽署 的政策陳述式範例

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

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

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

若要在已簽署的 中建立 Signature 參數的值URL,您可以雜湊並簽署您在 中建立的政策陳述式為使用固定政策URL的已簽署 建立政策陳述式

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

選項 1:使用標準政策建立簽章
  1. 使用 SHA-1 雜湊函數 和 RSA 來雜湊和簽署您在程序 中建立的政策陳述式為使用固定政策URL的已簽章 建立政策陳述式。使用不再包含空格的政策陳述式版本。

    對於雜湊函數所需的私有金鑰,使用其公有金鑰在活動的信任金鑰組中的私有金鑰進行分佈。

    注意

    用於雜湊和簽名政策聲明的方法取決於您的程式設計語言和平台。如需程式碼範例,請參閱 建立已簽署簽章的程式碼範例 URL

  2. 從雜湊字串和簽章字串中移除空格 (包括標籤和新行字元)。

  3. Base64-encode來編碼字串。 MIME如需詳細資訊,請參閱 20Base64 Content-Transfer-Encoding4,(多用途網際網路郵件延伸)第一部分:網際網路訊息機構格式。 RFC MIME

  4. 將URL查詢字串中無效的字元取代為有效字元。下表列出無效和有效的字元。

    取代這些無效的字元 有了這些有效的字元

    +

    - (連字號)

    =

    _ (底線)

    /

    ~ (波狀符號)

  5. 在 URL之後將產生的值附加到 簽署的 &Signature=,然後返回 URL 使用固定政策建立已簽章 以完成串連已簽署的 的各個部分URL。