OSS簽名機制主要用于驗證請求發送者的身份以及請求的有效性,防止未授權訪問和數據篡改。OSS支持V1和V4兩種不同版本的簽名算法。相比V1簽名,V4簽名采用了更為安全的哈希算法(OSS4-HMAC-SHA256)和更加復雜的簽名計算流程,確保數據交互的安全性。本文介紹如何升級為安全性更高的V4簽名。
阿里云對象存儲OSS自2025年03月01日起不再對新用戶(即新UID )開放使用V1簽名,并將于2025年09月01日起停止更新與維護且不再對新增Bucket開放使用V1簽名。請盡快切換到V4簽名,避免影響服務。更多信息,請參見公告說明。
自動實現V4簽名
V4簽名計算過程較為繁瑣,任何微小的計算偏差都可能導致請求失效,建議您采用阿里云SDK發起OSS服務請求。阿里云SDK內置了V4簽名機制,能自動處理簽名計算,免除您手動編寫及調試代碼實現V4簽名。您可以根據使用的編程語言或平臺,參考以下文檔將SDK更新至支持V4簽名的版本。
通過阿里云SDK、ossutil2.0自動實現V4簽名時,除指定Endpoint以外,您還需要指定阿里云通用Region ID作為發起請求地域的標識,示例值為cn-hangzhou
。更多信息,請參見OSS地域和訪問域名。
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請求進行合法性驗證。 |