本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要使用標準政策建立已簽署 URL,請完成以下步驟。
使用標準政策建立簽章的 URL
-
如果您使用 .NET 或 Java 建立簽章的 URL,並且您還沒有將金鑰對的私有金鑰從預設的 .pem 格式重新格式化為與 .NET 或 Java 相容的格式,則現在執行此操作。如需詳細資訊,請參閱重新格式化私有金鑰 (僅限 .NET 和 Java)。
-
串連下列值。您可以在此範例簽章的 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.
檔案的基本 URL
-
如果您未使用簽署的 URL,包括您自我的查詢字串參數 (如果有),則基本 URL 是您用來存取檔案的 CloudFront URL。在上述範例中,基本 URL 為
https://d111111abcdef8.cloudfront.net/image.jpg
。如需有關分佈的 URL 格式的詳細資訊,請參閱 自訂 CloudFront 中檔案的 URL 格式。-
下列 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 URL 適用於分佈中的圖片檔案。兩者都使用替代網域名稱。第二個包含查詢字串:
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.
您的查詢字串參數,如果有的話
&
-
(選用) 您可以輸入自己的查詢字串參數。若要這樣做,請在每個 之間新增一個 ampersand (
&
),例如color=red&size=medium
。您可以在 URL 內以任何順序指定查詢字串參數。重要
您的查詢字串參數無法命名為
Expires
、Signature
或Key-Pair-Id
。 - 4.
Expires=
Unix 時間格式 (以秒為單位) 和國際標準時間 (UTC) 的日期和時間
-
您希望 URL 停止允許存取檔案的日期和時間。
以 Unix 時間格式 (以秒為單位) 和國際標準時間 (UTC) 指定過期日期和時間。例如,2013 年 1 月 1 日上午 10:00 UTC
1357034400
會以 Unix 時間格式轉換為 ,如本主題開頭的範例所示。若要使用 epoch 時間,請將 32 位元整數用於不晚於 的日期2147483647
(2038 年 1 月 19 日 03:14:07 UTC)。如需 UTC 的相關資訊,請參閱 RFC 3339,網際網路上的日期和時間:時間戳記。 - 5.
&Signature=
政策陳述式的雜湊和簽章版本
-
JSON 政策聲明的雜湊、簽章和 base64-encoded 版本。如需詳細資訊,請參閱為使用標準政策的已簽章 URL 建立簽章。
- 6.
&Key-Pair-Id=
CloudFront 公有金鑰的公有金鑰 ID,其對應的私有金鑰是您用來產生簽章的
-
CloudFront 公有金鑰的 ID,例如
K2JCJMDEHXQW5F
。公有金鑰 ID 會告訴 CloudFront 要使用哪個公有金鑰來驗證已簽署的 URL。CloudFront 將簽章中的資訊與政策聲明中的資訊進行比較,以驗證該 URL 尚未遭到篡改。此公有金鑰必須屬於分佈中信任的簽署者金鑰群組。如需詳細資訊,請參閱指定可以建立已簽署 URLs簽署者。
- 1.
為使用標準政策的已簽章 URL 建立簽章
若要為使用標準政策的已簽章 URL 建立簽章,請完成下列程序。
為使用標準政策的已簽章 URL 建立政策陳述式
當您使用標準政策建立已簽章的 URL 時,Signature
參數是政策聲明的雜湊和簽章版本。對於使用標準政策的簽章的 URL,您不會將政策聲明包括在 URL 中,就像您使用自訂政策的已簽章的 URL 一樣。若要建立政策聲明,請執行下列程序。
為使用標準政策的已簽章的 URL 建立政策聲明
-
建構政策聲明,使用下列 JSON 格式,並使用 UTF-8 字元編碼。完全按照規定包含所有標點符號和其他常值。如需有關
Resource
和DateLessThan
參數的詳細資訊,請參閱 您在使用標準政策的已簽署 URL 的政策陳述式中指定的值。{ "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
-
從政策陳述式中移除所有空格 (包括標籤和換行字元)。您可能必須在應用程式的程式碼的字串中包含逸出字元。
您在使用標準政策的已簽署 URL 的政策陳述式中指定的值
當您為標準政策建立政策聲明時,您可以指定以下值。
- 資源
-
注意
您只能為
Resource
指定一個值。基本 URL 包括查詢字串 (如果有),但不包括 CloudFront
Expires
、Signature
和Key-Pair-Id
參數,例如:https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes
注意下列事項:
-
通訊協定 – 此值必須以
http://
或https://
開頭。 -
查詢字串參數 – 如果沒有查詢字串參數,請省略問號。
-
替代網域名稱 – 如果在 URL 中指定了替代網域名稱 (CNAME),則在引用網頁或應用程式中的檔案時,必須指定替代網域名稱。請勿為物件指定 Amazon S3 URL。
-
- DateLessThan
-
Unix 時間格式 (以秒為單位) 和國際標準時間 (UTC) 的 URL 的到期日期和時間。例如,2013 年 1 月 1 日上午 10:00 UTC 以 Unix 時間格式轉換為 1357034400。
此值必須與已簽章的 URL 中的
Expires
查詢字串參數的值相符。不要將值括在引號中。如需詳細資訊,請參閱 當 CloudFront 檢查已簽署 URL 中的過期日期和時間時。
使用標準政策的已簽署 URL 範例政策陳述式
當您在已簽署的 URL 中使用以下範例政策聲明時,使用者在到 UTC 2013 年 1 月 1 日上午 10:00 之前可以存取檔案 https://d111111abcdef8.cloudfront.net/horizon.jpg
:
{
"Statement": [
{
"Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes",
"Condition": {
"DateLessThan": {
"AWS:EpochTime": 1357034400
}
}
}
]
}
為使用標準政策的已簽章 URL 建立簽章
若要在已簽章的 URL 中建立 Signature
參數的值,請對您在 為使用標準政策的已簽章 URL 建立政策陳述式 中建立的政策聲明進行雜湊和簽署。
如需有關如何對政策聲明進行雜湊、簽章和編碼的詳細資訊和範例,請參閱:
選項 1:使用標準政策建立簽章
-
使用 SHA-1 雜湊函數和 RSA 對您在為使用標準政策的已簽章的 URL 建立政策聲明程序中建立的政策聲明進行雜湊和簽署。使用不再包含空格的政策陳述式版本。
對於雜湊函數所需的私有金鑰,使用其公有金鑰在活動的信任金鑰組中的私有金鑰進行分佈。
注意
用於雜湊和簽名政策聲明的方法取決於您的程式設計語言和平台。如需程式碼範例,請參閱 為已簽署 URL 建立簽章的程式碼範例。
-
從雜湊和簽章字串中移除空格 (包括標籤和換行字元)。
-
使用 MIME base64 編碼的 Base64-encode 字串。如需詳細資訊,請參閱 RFC 2045,MIME (多用途網際網路郵件延伸) 第一部分:網際網路訊息內文的格式中的第 6.8 節:Base64 Content-Transfer-Encoding
。 -
將 URL 查詢字串中無效的字元替換為有效的字元。下表列出無效和有效的字元。
取代這些無效的字元 有了這些有效的字元 +
- (連字號)
=
_ (底線)
/
~ (波狀符號)
-
在
&Signature=
之後,將結果值附加到已簽章的 URL,然後返回到使用標準政策建立簽章的 URL以完成已簽章的 URL 的各個部分的連接。