本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在請求身分驗證中指定簽章版本
Amazon S3 在大多數情況下僅支援 AWS Signature 第 4 版 AWS 區域。在某些較舊版本中 AWS 區域,Amazon S3 同時支援 Signature 第 4 版和 Signature 第 2 版。然而,Signature 第 2 版已結束 (已廢除)。如需 Signature 第 2 版終止支援的詳細資訊,請參閱AWS Amazon S3 的 Signature 第 2 版已關閉 (已棄用)。
如需所有 Amazon S3 區域及其支援之簽章版本的清單,請參閱《AWS 一般參考》中的區域與端點。
對於所有 AWS 區域, AWS SDKs 預設使用 Signature 第 4 版來驗證請求。使用 2016 年 5 月之前發行 AWS SDKs 時,您可能需要請求 Signature 第 4 版,如下表所示。
| SDK | 要求 Signature 第 4 版進行要求身分驗證 |
|---|---|
| AWS CLI |
針對預設描述檔,執行下列命令:
針對自訂描述檔,執行下列命令:
|
| Java 開發套件 |
在程式碼中新增下列程式碼:
或者,在命令列指定下列項目:
|
| PHP SDK |
針對 PHP SDK v2 建構 Amazon S3 服務用戶端時,請將
使用 PHP SDK 第 3 版時,請在建構 Amazon S3 服務用戶端時,將
|
| Python-Boto SDK |
在 boto 預設組態檔中,指定以下內容:
|
| Ruby 開發套件 |
Ruby 開發套件 - 第 1 版:建構用戶端時,請將
Ruby 開發套件 - 第 3 版:建構用戶端時,請將
|
| .NET 開發套件 |
在建立 Amazon S3 用戶端之前,將以下內容新增至程式碼:
或者,將以下內容新增至組態檔:
|
AWS Amazon S3 的 Signature 第 2 版已關閉 (已棄用)
Amazon S3 中的 Signature 第 2 版已結束 (已廢除)。Amazon S3 將僅接受使用 Signature 第 4 版簽署的 API 請求。
本節提供有關 Signature 第 2 版終止支援的常見問答。
什麼是 Signature 第 2/4 版,而簽署請求又表示什麼意思?
Signature 第 2 版或 Signature 第 4 版簽署程序用於驗證您的 Amazon S3 API 請求。簽署請求可讓 Amazon S3 識別傳送請求的人員,並保護請求免於受到不良執行者的破壞。
如需簽署 AWS 請求的詳細資訊,請參閱《》中的簽署 AWS API 請求AWS 一般參考。
更新包含什麼內容?
我們目前支援使用 Signature 第 2 版和 Signature 第 4 版程序簽署的 Amazon S3 API 請求。在此之後,Amazon S3 將僅接受使用 Signature 第 4 版簽署的請求。
如需簽署 AWS 請求的詳細資訊,請參閱《》中的簽章版本 4 的變更AWS 一般參考。
更新的原因?
Signature 第 4 版使用簽署金鑰 (而不使用私密存取金鑰) 來提高安全性。所有 目前都支援 Signature 第 4 版 AWS 區域,而 Signature 第 2 版僅支援 2014 年 1 月之前啟動的 區域。這項更新可讓我們在所有區域中提供更一致的體驗。
我要如何確定正在使用的是 Signature 第 4 版,以及我需要進行哪些更新?
用於簽署請求的 Signature 版本,其常見的設定方法為用戶端上的工具或 SDK。根據預設,最新版本的 AWS SDKs會使用 Signature 第 4 版。對於第三方軟體,請聯絡適當的軟體支援團隊以確認您需要的版本。如果要向 Amazon S3 傳送直接 REST 呼叫,必須修改應用程式以使用 Signature 第 4 版簽署程序。
如需有關移動到 Signature 第 4 版時要使用的 AWS SDKs 版本的資訊,請參閱 從 Signature 第 2 版遷移至 Signature 第 4 版。
如需有關在 Amazon S3 REST API 中使用 Signature 第 4 版的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的身分驗證請求 (AWS Signature 第 4 版)。
如果不更新會發生什麼情況?
在此之後使用 Signature 第 2 版簽署的請求,將無法向 Amazon S3 進行身分驗證。請求者將看到系統顯示錯誤,表示必須使用 Signature 第 4 版簽署請求。
即使我使用的預先簽章 URL 要求大於 7 天的簽署時間,是否也需要進行更新?
如果您使用的預先簽章 URL 要求大於 7 天的簽署時間,則目前無需採取任何動作。您可以繼續使用 AWS Signature 第 2 版來簽署和驗證預先簽章的 URL。如需如何針對預先簽章的 URL 案例遷移至 Signature 第 4 版的詳細資訊,請參閱 Amazon S3 文件。
詳細資訊
-
如需使用 Signature 第 4 版的詳細資訊,請參閱簽署 AWS API 請求。
-
在 Signature 第 4 版的變更中檢視 Signature 第 2 版和 Signature 第 4 版之間的變更清單。
-
檢視 AWS Signature 第 4 版文章,取代 AWS Signature 第 2 版,以在論壇中簽署 Amazon S3 API 請求
。 AWS -
如果您有其他問題或疑慮,請聯絡 支援。
從 Signature 第 2 版遷移至 Signature 第 4 版
如果您目前使用 Signature 第 2 版進行 Amazon S3 API 請求身分驗證,應改為使用 Signature 第 4 版。系統即將終止對 Signature 第 2 版的支援,如 AWS Amazon S3 的 Signature 第 2 版已關閉 (已棄用) 中所述。
如需有關在 Amazon S3 REST API 中使用 Signature 第 4 版的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的身分驗證請求 (AWS Signature 第 4 版)。
下表列出使用 Signature 第 4 版 (SigV4) 所需的最低軟體開發套件版本。如果您使用預先簽章URLs 搭配 AWS Java、JavaScript (Node.js) 或 Python (Boto/CLI) SDKs,您必須在用戶端組態中設定正確的 AWS 區域 簽章版本 4。如需在用戶端組態中設定 SigV4 的資訊,請參閱 在請求身分驗證中指定簽章版本。
| 如果您使用此軟體開發套件/產品 | 升級至此軟體開發套件版本 | 用戶端使用 Sigv4 時需要變更程式碼嗎? | 軟體開發套件文件的連結 |
|---|---|---|---|
|
適用於 Java 的 AWS SDK v1 |
升級至 Java 1.11.201+ 或 v2。 | 是 | 在請求身分驗證中指定簽章版本 |
|
適用於 Java 的 AWS SDK v2 |
無需升級軟體開發套件。 | 否 | 適用於 Java 的 AWS SDK |
|
適用於 .NET 的 AWS SDK v1 |
升級至 3.1.10 或更新版本。 | 是 | 適用於 .NET 的 AWS SDK |
|
適用於 .NET 的 AWS SDK v2 |
升級至 3.1.10 或更新版本。 | 否 | 適用於 .NET 的 AWS SDK |
|
適用於 .NET 的 AWS SDK v3 |
升級至 3.3.0.0 或更新版本。 | 是 | 適用於 .NET 的 AWS SDK v3 |
|
適用於 JavaScript 的 AWS SDK v1 |
升級至 2.68.0 或更新版本。 | 是 | 適用於 JavaScript 的 AWS SDK |
|
適用於 JavaScript 的 AWS SDK v2 |
升級至 2.68.0 或更新版本。 | 是 | 適用於 JavaScript 的 AWS SDK |
|
適用於 JavaScript 的 AWS SDK v3 |
目前無需採取動作。在 2019 年第 3 季升級至主要版本 V3。 | 否 | 適用於 JavaScript 的 AWS SDK |
|
適用於 PHP 的 AWS SDK v1 |
建議升級至 PHP 的最新版本,或至少升級至 v2.7.4,其中 S3 用戶端組態中的簽署參數應設為 v4。 | 是 | 適用於 PHP 的 AWS SDK |
|
適用於 PHP 的 AWS SDK v2 |
建議升級至 PHP 的最新版本,或至少升級至 v2.7.4,其中 S3 用戶端組態中的簽署參數應設為 v4。 | 否 | 適用於 PHP 的 AWS SDK |
|
適用於 PHP 的 AWS SDK v3 |
無需升級軟體開發套件。 | 否 | 適用於 PHP 的 AWS SDK |
|
Boto2 |
升級至 Boto2 v2.49.0。 | 是 | Boto 2 升級 |
|
Boto3 |
升級至 1.5.71 (Botocore)、1.4.6 (Boto3)。 | 是 | 適用於 Python 的 Boto 3 - AWS SDK |
|
AWS CLI |
升級至 1.11.108。 | 是 | AWS Command Line Interface |
|
AWS CLI v2 (預覽版) |
無需升級軟體開發套件。 | 否 | AWS Command Line Interface 第 2 版 |
|
適用於 Ruby 的 AWS SDK v1 |
升級至 Ruby V3。 | 是 | 適用於 AWS的 Ruby V3 |
|
適用於 Ruby 的 AWS SDK v2 |
升級至 Ruby V3。 | 是 | 適用於 AWS的 Ruby V3 |
|
適用於 Ruby 的 AWS SDK v3 |
無需升級軟體開發套件。 | 否 | 適用於 AWS的 Ruby V3 |
|
Go |
無需升級軟體開發套件。 | 否 | 適用於 Go 的 AWS SDK |
|
C++ |
無需升級軟體開發套件。 | 否 | 適用於 C++ 的 AWS SDK |
AWS Tools for Windows PowerShell 或 AWS Tools for PowerShell Core
如果您使用的模組版本早於 3.3.0.0,則必須升級到 3.3.0.0。
如需取得版本資訊,請使用 Get-Module cmdlet:
Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore
若要更新 3.3.0.0 版,請使用 Update-Module cmdlet:
Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore
您可以使用有效期超過 7 天的預先簽署 URL,您將使用該 URL 傳送 Signature 第 2 版流量。