天天看點

OSS 解決方案篇-OSS 資料安全

OSS 資料安全

目前 OSS 保證資料安全的方式參考的方式有如下幾種方式

1、 OSS 要設定為私有的避免公共讀,或者公共讀寫。

2、盡量不要使用傳統的 AccesskeyID (AK)、AccesskeySecret (SK),改用 STS token 的方式替代原來的教研方式;

3、可以采用 OSS 内容加密,在鑒權的基礎上雙重加密,使用 KMS 對内容進行加密,但操作過程略微複雜;

使用場景

服務端存儲 AKSK

使用者自己有伺服器,部署一套簽名代碼,使用 AK SK 生成鑒權的 signature 傳回給用戶端,端上利用 signature 構造 http 的請求頭的方式來驗簽;

OSS 解決方案篇-OSS 資料安全

服務端生成 STS token

此類場景多用在移動端使用,用戶端通過一個 https 位址請求到使用者伺服器,伺服器上部署一個生成 STS token 的程式,收到移動端請求後請求 RAM 服務端生成 STS 資訊。擷取到 RAM 服務端傳回的 STS.AK STS.SK STS.token 資訊後,再傳回給移動端使用;

需要注意使用者伺服器上也是用 AK SK 去申請的 STS,是以需要使用者将生成一個子賬号,然後配置好角色,将角色和權限綁定後,再通過子賬号進行調用角色去生成 STS 資訊;

移動端請求使用者伺服器盡量使用 HTTPS 協定,避免明文被劫持;服務端也可以針對移動端的請求做二次校驗,比如用戶端請求時攜帶一個 token,服務端校驗通過再傳回 STS 資訊;

OSS 解決方案篇-OSS 資料安全
OSS 解決方案篇-OSS 資料安全

用戶端拿到鑒權簽名如何防洩露

header AK SK 簽名

1、服務端通過 header + AK SK 簽名方式生成 signature 後,可以對 header 簽名做二次加密。比如用戶端請求服務端時攜帶裝置号和時間戳資訊,服務端通過裝置号和時間戳對 signature 做加密,再傳回給用戶端;

2、用戶端拿到加密後的 signature ,通過約定的解密算法将 signature 解析出來,這樣可以避免 signature 被别人抓到,或者被反編譯出來;

3、通過用戶端和服務端的傳輸可以用 https 方式避免被旁路劫持幹擾;

4、header 簽名拿到後,有效期是 15min ,超過 15min 沒有使用,signature 失效無法繼續使用;

header STS 簽名

1、服務端通過 header + STS 簽名方式生成 signature 後,在生成 STS 時可以限制隻允許目前攜帶了裝置号的 IP 來擷取 signature ,如果裝置号和 IP 不比對的情況,即便是其他客戶擷取到了 STS token 也無法上傳;

2、 當STS 暴露後,使用者可以在 RAM 産品上将這個 STS 用的角色删除掉,重新配置一個角色即可,可以最小化降低影響;

3、生成 STS 時的 有效時間盡量不要那麼長,控制在 900 - 3600s 之内,如果每個 STS token 都是 3600s 失效時間會帶來一定的業務風險;

OSS 解決方案篇-OSS 資料安全

繼續閱讀