OSS簽名機制主要用於驗證請求寄件者的身份以及請求的有效性,防止未授權訪問和資料篡改。OSS支援V1和V4兩種不同版本的簽名演算法。相比V1簽名,V4簽名採用了更為安全的雜湊演算法(OSS4-HMAC-SHA256)和更加複雜的簽名計算流程,確保資料互動的安全性。本文介紹如何升級為安全性更高的V4簽名。
阿里雲Object Storage Service自2024年12月1日起不再對新使用者(即新UID )開放使用V1簽名,並將於2025年06月01日起停止更新與維護且不再對新增Bucket開放使用V1簽名。請儘快切換到V4簽名,避免影響服務。更多資訊,請參見公告說明。
自動實現V4簽名
V4簽名計算過程較為繁瑣,任何微小的計算偏差都可能導致請求失效,建議您採用阿里雲SDK發起OSS服務要求。阿里雲SDK內建了V4簽名機制,能自動處理簽名計算,免除您手動編寫及調試代碼實現V4簽名。您可以根據使用的程式設計語言或平台,參考以下文檔將SDK更新至支援V4簽名的版本。
通過阿里雲SDK自動實現V4簽名時,除指定Endpoint以外,您還需要指定阿里雲通用Region ID作為發起請求地區的標識,樣本值為cn-hangzhou
。更多資訊,請參見訪問網域名稱和資料中心。
SDK | 版本要求 | 參考文檔 |
Java SDK | 3.17.4及以上版本 | |
PHP SDK | 2.7.0及以上版本 | |
Node.js SDK | 6.20.0及以上版本 | |
Python SDK | 2.18.4及以上版本 | |
Browser.js SDK | 6.20.0及以上版本 | |
.NET SDK | 2.14.0及以上版本 | |
Go SDK | 3.0.2及以上版本 | |
C++ SDK | 1.10.0及以上版本 | |
C SDK | 3.11.0及以上版本 |
手動實現V4簽名
當您無法使用阿里雲SDK時,您可以參考以下方法手動實現V4簽名演算法,然後通過V4簽名的方式訪問OSS資源。
簽名方式 | 說明 | 參考文檔 |
在Header中包含簽名 | 在OSS中,使用HTTP請求的Authorization Header來攜帶簽名資訊是進行身分識別驗證的最常見方法。除了使用POST簽名和URL簽名之外,所有的OSS操作都需要通過Authorization Header來進行身分識別驗證。 | |
在URL中包含簽名 | 通過產生一個包含簽名和其他必要請求資訊的預簽名URL的方式,在不透露訪問憑證的情況下,授予第三方在特定有效期間內對OSS資源的存取權限。 | |
在PostObject中包含簽名 | PostObject簽名旨在實現通過HTML表單直接上傳檔案到OSS的一種簽名機制。這種機制允許使用者在用戶端(例如Web瀏覽器)構造一個HTML表單,表單中包含要上傳檔案的欄位以及其他必要的參數,例如簽名、存取金鑰、Bucket名稱、對象鍵等。當表單提交時,這些資訊會通過HTTP POST請求發送到OSS,OSS會對POST請求進行合法性驗證。 |