阿里雲STS簡介


需求場景

  • 管理員用戶在后台上傳視頻文件,文件比較大,需要直接上傳到OSS上面。
  • 出於安全考慮,不能直接把一個RAM用戶的key和secret寫死在管理后台的前端代碼里面,所以需要使用阿里雲的STS獲取一個臨時的身份,用來上傳文件,文件傳完之后身份過期。

概念介紹

這個過程,會涉及到阿里雲的兩個雲服務:

  • STS
  • 訪問控制

STS:阿里雲臨時安全令牌(Security Token Service,STS)是阿里雲提供的一種臨時訪問權限管理服務。

訪問控制:阿里雲的訪問控制服務,其實就是提供了”用戶-角色-權限“這樣的一套用戶權限體系,用來控制對於阿里雲各類雲資源的訪問,比如OSS等。其中有幾個關鍵概念:

  1. 可信實體:可信實體,可以簡單理解為一個用戶,這個用戶可以在“阿里雲控制台->訪問控制->人員管理->用戶”里面去進行創建和編輯。
  2. RAM角色:角色可以理解為是一組權限的集合。
  3. 扮演角色:一個用戶可以扮演一個或者多個角色,扮演哪個角色,就擁有了哪個角色賦予的權限。

ARN:是一個字符串,用來在代碼中唯一標識一個角色。 

實現邏輯

上述業務場景的實現,本質上就是:

  • 就是我們使用某一個用戶(可信實體)的身份,來向阿里雲的STS服務,請求一套臨時的訪問令牌,讓這個令牌的持有者,可以臨時扮演指定的一個角色
  • 前端獲得這個臨時令牌之后,以其調用OSS提供的接口,來進行OSS的文件操作。

簡單來說,分成兩個步驟:

  1. 在阿里雲的訪問控制后台,創建好用戶和RAM角色
  2. 業務服務器實現一個獲取STS令牌的接口,供前端調用。
  3. 前端使用STS訪問令牌,訪問OSS提供的上傳文件接口。

從業務服務器的角度,需要做的工作包括:

  • 創建授權策略
  • 創建RAM角色
  • 創建用戶
  • 實現提供STS訪問令牌的接口
  • 跨域設置

上述業務場景的實現,本質上,

就是我們使用某一個用戶(可信實體)的身份,來向阿里雲的STS服務,請求一套臨時的訪問令牌,讓這個令牌的持有者,可以臨時扮演指定的一個角色
前端獲得這個臨時令牌之后,以其調用OSS提供的接口,來進行OSS的文件操作。

前端調用

對於前端調用者而言,在獲取到令牌之后,主要問題就是怎樣來上傳一個文件,詳見下面的鏈接。

推薦使用Browser.js的方式,有三個主要的接口可供前端使用:

  • 普通上傳
  • 分片上傳
  • 斷點續傳

 

參考資料

關於STS的一些基本概念:https://help.aliyun.com/document_detail/28756.html?spm=a2c4g.11174283.6.787.4a4d5662tWHP35

前端怎樣上傳文件:https://help.aliyun.com/document_detail/112718.html?spm=a2c4g.11174359.6.1552.3da85241mGWBs8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM