訪問控制
阿里云對象存儲OSS提供讀寫權(quán)限ACL、授權(quán)策略、防盜鏈白名單等功能,實現(xiàn)存儲資源訪問的控制和管理。
讀寫權(quán)限
OSS為權(quán)限控制提供訪問控制列表(ACL)。ACL是授予Bucket和Object訪問權(quán)限的訪問策略。 您可以在創(chuàng)建存儲空間(Bucket)或上傳對象(Object)時配置ACL,也可以在創(chuàng)建Bucket或上傳Object后的任意時間內(nèi)修改ACL。
Bucket ACL
Bucket ACL是Bucket級別的權(quán)限訪問控制。目前有三種訪問權(quán)限,含義如下:
權(quán)限值
中文名稱
權(quán)限對訪問者的限制
public-read-write
公共讀寫
任何人(包括匿名訪問)都可以對該Bucket中的Object進(jìn)行讀、寫、刪除操作;所有這些操作產(chǎn)生的費用由該Bucket的Owner承擔(dān),請慎用該權(quán)限。
警告互聯(lián)網(wǎng)上任何用戶都可以對該Bucket內(nèi)的文件進(jìn)行訪問,并且向該Bucket寫入數(shù)據(jù)。這有可能造成您數(shù)據(jù)的外泄以及費用激增,如果被人惡意寫入違法信息還可能會侵害您的合法權(quán)益。除特殊場景外,不建議您配置公共讀寫權(quán)限。
public-read
公共讀
只有該Bucket的Owner或者授權(quán)對象可以對存放在其中的Object進(jìn)行寫、刪除操作;任何人(包括匿名訪問)可以對Object進(jìn)行讀操作。
警告互聯(lián)網(wǎng)上任何用戶都可以對該Bucket內(nèi)文件進(jìn)行訪問,這有可能造成您數(shù)據(jù)的外泄以及費用激增,請謹(jǐn)慎操作。
private
私有
只有該Bucket的Owner或者授權(quán)對象可以對存放在其中的Object進(jìn)行讀、寫、刪除操作;其他人在未經(jīng)授權(quán)的情況下無法訪問該Bucket內(nèi)的Object。
Object ACL
Object ACL是Object級別的權(quán)限訪問控制。目前有四種訪問權(quán)限,含義如下:
權(quán)限值
中文名稱
權(quán)限對訪問者的限制
public-read-write
公共讀寫
所有用戶擁有對該Object的讀寫權(quán)限。
警告互聯(lián)網(wǎng)上任何用戶都可以對該Object進(jìn)行訪問,并且向該Object寫入數(shù)據(jù)。這有可能造成您數(shù)據(jù)的外泄以及費用激增,如果被人惡意寫入違法信息還可能會侵害您的合法權(quán)益。除特殊場景外,不建議您配置公共讀寫權(quán)限。
public-read
公共讀
非Object Owner只有該Object的讀權(quán)限,而Object Owner擁有該Object的讀寫權(quán)限。
警告互聯(lián)網(wǎng)上任何用戶都可以對該Object進(jìn)行訪問,這有可能造成您數(shù)據(jù)的外泄以及費用激增,請謹(jǐn)慎操作。
private
私有
只有該Object的Owner擁有該Object的讀寫權(quán)限,其他的用戶沒有權(quán)限操作該Object。
default
繼承Bucket
Object遵循Bucket的讀寫權(quán)限,即Bucket是什么權(quán)限,Object就是什么權(quán)限。
說明Object的讀寫權(quán)限默認(rèn)為繼承Bucket。Object的權(quán)限大于Bucket權(quán)限。例如,設(shè)置了Object的權(quán)限是public-read,則無論Bucket是什么權(quán)限,該Object都可以被身份驗證訪問和匿名訪問。
更多信息,請參見OSS開發(fā)指南中的設(shè)置Object ACL。
基于用戶的授權(quán)策略RAM Policy
RAM(Resource Access Management)是阿里云提供的資源訪問控制服務(wù),RAM Policy是基于用戶的授權(quán)策略。通過設(shè)置RAM Policy,您可以集中管理您的用戶(例如員工、系統(tǒng)或應(yīng)用程序),以及控制用戶可以訪問您名下哪些資源的權(quán)限,例如限制您的用戶只擁有對某個Bucket里的某些對象的讀權(quán)限。
RAM Policy為JSON格式,您可以通過其中的Statement描述授權(quán)語義,每條語義包含對Action、Effect、Resource和Condition的描述。您可以根據(jù)業(yè)務(wù)場景設(shè)置多條語義,實現(xiàn)靈活的授權(quán)策略。詳情請參見對象存儲系統(tǒng)權(quán)限策略參考和對象存儲自定義權(quán)限策略參考。
STS臨時授權(quán)
相對于RAM提供的長效控制機(jī)制,STS(Security Token Service)提供的是一種臨時訪問授權(quán)。通過STS可以返回臨時的AccessKey和Token,這些信息可以直接發(fā)給臨時用戶用來訪問OSS。一般來說,從STS獲取的權(quán)限會受到更加嚴(yán)格的限制,并且擁有時間限制,因此這些信息泄露之后對于系統(tǒng)的影響也很小。
OSS可以通過阿里云STS進(jìn)行臨時授權(quán)訪問。通過STS,您可以為第三方應(yīng)用或子用戶(即用戶身份由您自己管理的用戶)頒發(fā)一個自定義時效和權(quán)限的訪問憑證。更多信息請參見OSS安全令牌(STS Token)訪問。
基于資源的授權(quán)策略Bucket Policy
Bucket Policy是基于資源的授權(quán)策略。相比于RAM Policy,Bucket Policy支持在控制臺直接進(jìn)行圖形化配置操作,并且Bucket擁有者直接可以進(jìn)行訪問授權(quán)。
使用Bucket Policy,您可以授予其他賬號的RAM用戶訪問您的OSS資源的權(quán)限,也可以向匿名用戶授予帶特定IP條件限制的訪問權(quán)限。詳情請參見通過Bucket Policy授權(quán)用戶訪問指定資源。
防盜鏈白名單
對象存儲OSS是按使用量收費的服務(wù)。為了減少您存儲于OSS的數(shù)據(jù)被其他人盜鏈而產(chǎn)生額外費用,OSS支持設(shè)置基于HTTP和HTTPS header中表頭字段Referer的防盜鏈方法。
您可以設(shè)置防盜鏈白名單,僅允許指定的域名訪問OSS資源,或者僅允許HTTP或HTTPS header中包含Referer字段的請求才能訪問OSS資源。對于公共讀或公共讀寫的Bucket,防盜鏈白名單可以有效防止盜鏈,保護(hù)您的合法權(quán)益。詳情請參見OSS開發(fā)指南中的防盜鏈。