阿里云STS简介
需求場(chǎng)景
管理員用戶在后臺(tái)上傳視頻文件,文件比較大,需要直接上傳到OSS上面。
出于安全考慮,不能直接把一個(gè)RAM用戶的key和secret寫死在管理后臺(tái)的前端代碼里面,所以需要使用阿里云的STS獲取一個(gè)臨時(shí)的身份,用來上傳文件,文件傳完之后身份過期。
概念介紹
這個(gè)過程,會(huì)涉及到阿里云的兩個(gè)云服務(wù):
STS
訪問控制
STS:阿里云臨時(shí)安全令牌(Security Token Service,STS)是阿里云提供的一種臨時(shí)訪問權(quán)限管理服務(wù)。
訪問控制:阿里云的訪問控制服務(wù),其實(shí)就是提供了”用戶-角色-權(quán)限“這樣的一套用戶權(quán)限體系,用來控制對(duì)于阿里云各類云資源的訪問,比如OSS等。其中有幾個(gè)關(guān)鍵概念:
可信實(shí)體:可信實(shí)體,可以簡(jiǎn)單理解為一個(gè)用戶,這個(gè)用戶可以在“阿里云控制臺(tái)->訪問控制->人員管理->用戶”里面去進(jìn)行創(chuàng)建和編輯。
RAM角色:角色可以理解為是一組權(quán)限的集合。
扮演角色:一個(gè)用戶可以扮演一個(gè)或者多個(gè)角色,扮演哪個(gè)角色,就擁有了哪個(gè)角色賦予的權(quán)限。
ARN:是一個(gè)字符串,用來在代碼中唯一標(biāo)識(shí)一個(gè)角色。
實(shí)現(xiàn)邏輯
上述業(yè)務(wù)場(chǎng)景的實(shí)現(xiàn),本質(zhì)上就是:
就是我們使用某一個(gè)用戶(可信實(shí)體)的身份,來向阿里云的STS服務(wù),請(qǐng)求一套臨時(shí)的訪問令牌,讓這個(gè)令牌的持有者,可以臨時(shí)扮演指定的一個(gè)角色
前端獲得這個(gè)臨時(shí)令牌之后,以其調(diào)用OSS提供的接口,來進(jìn)行OSS的文件操作。
簡(jiǎn)單來說,分成兩個(gè)步驟:
在阿里云的訪問控制后臺(tái),創(chuàng)建好用戶和RAM角色
業(yè)務(wù)服務(wù)器實(shí)現(xiàn)一個(gè)獲取STS令牌的接口,供前端調(diào)用。
前端使用STS訪問令牌,訪問OSS提供的上傳文件接口。
從業(yè)務(wù)服務(wù)器的角度,需要做的工作包括:
創(chuàng)建授權(quán)策略
創(chuàng)建RAM角色
創(chuàng)建用戶
實(shí)現(xiàn)提供STS訪問令牌的接口
跨域設(shè)置
上述業(yè)務(wù)場(chǎng)景的實(shí)現(xiàn),本質(zhì)上,
就是我們使用某一個(gè)用戶(可信實(shí)體)的身份,來向阿里云的STS服務(wù),請(qǐng)求一套臨時(shí)的訪問令牌,讓這個(gè)令牌的持有者,可以臨時(shí)扮演指定的一個(gè)角色
前端獲得這個(gè)臨時(shí)令牌之后,以其調(diào)用OSS提供的接口,來進(jìn)行OSS的文件操作。
前端調(diào)用
對(duì)于前端調(diào)用者而言,在獲取到令牌之后,主要問題就是怎樣來上傳一個(gè)文件,詳見下面的鏈接。
推薦使用Browser.js的方式,有三個(gè)主要的接口可供前端使用:
普通上傳
分片上傳
斷點(diǎn)續(xù)傳
參考資料
關(guān)于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
總結(jié)
- 上一篇: 蒜蓉粉丝蒸虾(蒜蓉粉丝蒸虾怎么做好吃 )
- 下一篇: 云南瑞丽疫情最新情况 云南瑞丽疫情严重吗