OSS如何與RAM協(xié)同工作
訪問控制RAM(Resource Access Management)是阿里云提供的一項(xiàng)服務(wù),可以幫助您集中管理用戶身份與資源訪問權(quán)限。企業(yè)內(nèi)有多名員工或應(yīng)用程序需要訪問對象存儲(以下簡稱OSS)的資源時(shí),可以使用RAM服務(wù)做統(tǒng)一的權(quán)限管理,按需為他們分配不同的訪問權(quán)限。在使用RAM管理阿里云產(chǎn)品的訪問權(quán)限前,您需要了解云產(chǎn)品能與RAM的哪些功能結(jié)合使用,從而更好地設(shè)計(jì)滿足業(yè)務(wù)需要的訪問控制。本文介紹OSS支持的RAM功能以及這些功能與RAM協(xié)同工作的原理。
OSS支持的RAM功能
OSS支持的RAM功能及支持程度如下表所示:
RAM功能 | OSS是否支持 |
RAM用戶訪問 | 支持 |
安全令牌(STS Token)訪問 | 支持 |
基于身份的策略(賬號級) | 支持 |
基于身份的策略(資源組級) | 部分支持 |
操作級授權(quán) | 支持 |
資源級授權(quán) | 支持 |
服務(wù)級條件關(guān)鍵字 | 支持 |
標(biāo)簽鑒權(quán) | 部分支持 |
普通服務(wù)角色 | 支持 |
服務(wù)關(guān)聯(lián)角色 | 不支持 |
您可以訪問支持RAM的云服務(wù)查看所有支持RAM的阿里云服務(wù),訪問支持STS的云服務(wù)查看所有支持STS Token的云服務(wù)。
RAM用戶訪問
OSS支持RAM用戶訪問。
RAM用戶是RAM的一種實(shí)體身份類型,有唯一的身份ID。RAM用戶通常與某個(gè)特定的人或應(yīng)用程序一一對應(yīng)。RAM用戶使用其身份憑證訪問OSS時(shí),OSS會校驗(yàn)該用戶對相關(guān)資源的訪問權(quán)限。
身份憑證在創(chuàng)建RAM用戶時(shí)設(shè)置。創(chuàng)建RAM用戶只能由管理員賬號操作。通過控制臺訪問云資源的RAM用戶需要的身份憑證是登錄名稱和登錄密碼,通過OpenAPI調(diào)用訪問云資源需要的身份憑證是訪問密鑰AK(AccessKey)。建議您定期更換RAM用戶的密碼,不要將AK信息明文寫入工程代碼,以提高RAM用戶身份憑證的安全性。更多信息請參見身份管理。
說明管理員賬號是指阿里云賬號(主賬號)或者擁有管理員權(quán)限的RAM用戶或RAM角色。
RAM用戶默認(rèn)沒有任何權(quán)限。創(chuàng)建完成后,您必須使用管理員賬號為RAM用戶授予權(quán)限策略才能使其擁有云資源訪問或操作權(quán)限。基于身份的權(quán)限策略包括系統(tǒng)權(quán)限策略對象存儲系統(tǒng)權(quán)限策略參考和自定義權(quán)限策略對象存儲自定義權(quán)限策略參考。系統(tǒng)權(quán)限策略由阿里云創(chuàng)建,自定義權(quán)限策略由您自行創(chuàng)建。
操作文檔
安全令牌(STS Token)訪問
OSS支持安全令牌(STS Token)訪問。
安全令牌(STS Token)是RAM角色訪問云資源時(shí)使用的身份憑證,由RAM提供的STS(Security Token Service)服務(wù)為扮演RAM角色的可信實(shí)體頒發(fā)。RAM角色是RAM的一種虛擬身份類型,沒有長期身份憑證,需要被一個(gè)可信實(shí)體扮演。
對比使用訪問密鑰AK(AccessKey)等長期憑證而言,使用STS Token這樣的臨時(shí)身份憑證可減少風(fēng)險(xiǎn)暴露時(shí)長,提升您云上資產(chǎn)的安全。您可以訪問RAM角色概覽了解可信實(shí)體的含義以及使用RAM角色和STS Token的典型場景。
RAM角色默認(rèn)沒有任何權(quán)限,您必須使用管理員賬號為RAM角色授予權(quán)限策略才能使其擁有云資源訪問或操作權(quán)限。基于身份的權(quán)限策略包括對象存儲系統(tǒng)權(quán)限策略參考和對象存儲自定義權(quán)限策略參考。系統(tǒng)權(quán)限策略由阿里云創(chuàng)建,自定義權(quán)限策略由您自行創(chuàng)建。
操作文檔
基于身份的策略
OSS支持基于身份的權(quán)限策略。
基于身份的權(quán)限策略可以授予RAM身份,如RAM用戶、RAM用戶組或RAM角色,用于定義上述身份可以在什么條件下對哪些資源執(zhí)行什么操作。
從管理的角度看,基于身份的權(quán)限策略分為系統(tǒng)權(quán)限策略和自定義權(quán)限策略。系統(tǒng)權(quán)限策略由阿里云創(chuàng)建和維護(hù),您只能使用但不能修改或刪除此類權(quán)限策略。自定義權(quán)限策略由您自行創(chuàng)建和維護(hù)。您可以通過控制臺或OpenAPI創(chuàng)建自定義權(quán)限策略。
從授權(quán)范圍看,基于身份的策略可以分為賬號級和資源組級。賬號級的授權(quán)范圍是云賬號內(nèi)的所有資源。資源組級的授權(quán)范圍是該資源組內(nèi)的所有資源。賬號級授權(quán)的優(yōu)先級高于資源組級授權(quán),關(guān)于二者的定義和范圍請參見權(quán)限策略模型。您可以在為RAM身份授權(quán)時(shí)指定授權(quán)范圍。
參考文檔
操作級授權(quán)
OSS支持操作級的授權(quán)。
在權(quán)限策略語法中,操作(Action)元素用于描述權(quán)限允許或拒絕的特定操作,一般情況下與其關(guān)聯(lián)的云產(chǎn)品API同名。Action元素的格式為oss:<action-name>
。
OSS支持操作級的授權(quán)粒度,意味著您可以在權(quán)限策略中,為某一具體操作設(shè)置訪問權(quán)限。
操作級授權(quán)通常用于使用自定義權(quán)限策略進(jìn)行訪問控制。
您可以訪問RAM Policy常見示例確認(rèn)OSS的常用RAM代碼信息,或查看支持RAM的云服務(wù)了解其他云產(chǎn)品的RAM代碼信息。
關(guān)于OSS支持的所有操作的列表,請參見RAM Policy。
OSS權(quán)限策略中的Action元素示例
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo"
]
資源級授權(quán)
OSS支持資源級的授權(quán)。
在權(quán)限策略語法中,資源(Resource)元素用于描述權(quán)限允許或拒絕執(zhí)行操作的一個(gè)或多個(gè)資源對象。資源是云服務(wù)呈現(xiàn)給用戶與之交互的對象實(shí)體的一種抽象,例如:OSS存儲空間或ECS實(shí)例等。Resource元素通過云服務(wù)定義的資源ARN(Aliyun Resource Name)來統(tǒng)一標(biāo)識,具體格式為acs:oss:<region>:<account-id>:<relative-id>。對于不支持資源級授權(quán)的操作,使用通配符(*)描述該操作應(yīng)用于所有資源。
OSS支持資源級的授權(quán)粒度,意味著您可以在權(quán)限策略中指定某一具體資源對象的訪問權(quán)限。資源級授權(quán)通常用于使用自定義權(quán)限策略進(jìn)行訪問控制。關(guān)于OSS的所有資源列表,請參見RAM Policy。
OSS權(quán)限策略中的Resource元素示例
"Resource": [
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]
服務(wù)級條件關(guān)鍵字
OSS支持服務(wù)級條件關(guān)鍵字。
在權(quán)限策略語法中,條件(Condition)元素用于指定授權(quán)生效的限制條件,是可選元素。Condition元素由一個(gè)或多個(gè)條件子句構(gòu)成。一個(gè)條件子句由條件操作類型、條件關(guān)鍵字和條件值組成。條件操作類型由RAM服務(wù)定義,條件關(guān)鍵字包括通用條件關(guān)鍵字(命名格式:acs:<condition-key>
)和服務(wù)及條件關(guān)鍵字(命名格式:oss:<condition-key>
),條件值根據(jù)關(guān)鍵字的設(shè)置不同而不同。關(guān)于Condition的詳細(xì)說明請參見權(quán)限策略基本元素。
支持服務(wù)級條件關(guān)鍵字,意味著可以在授權(quán)具體操作和資源對象時(shí),額外指定授權(quán)生效的限制條件。服務(wù)級條件關(guān)鍵字通常用于使用自定義權(quán)限策略進(jìn)行訪問控制。關(guān)于適用于OSS的服務(wù)級條件關(guān)鍵字列表,請參見RAM Policy。
OSS權(quán)限策略中的服務(wù)級條件關(guān)鍵字示例
"Condition": {
"StringEquals": {
"vpc:TargetAccountRDId": [
"12****"
]
},
"Bool": {
"acs:SecureTransport": [
"true"
]
}
標(biāo)簽鑒權(quán)
OSS支持標(biāo)簽鑒權(quán)。
在權(quán)限策略語法中,標(biāo)簽是一類通用條件關(guān)鍵字,包含acs:ResourceTag/{tag-key}和acs:RequestTag/{tag-key}。標(biāo)簽可用來從不同維度對具有相同特征的云資源進(jìn)行分類、搜索和聚合,讓資源管理變得更加輕松。您可以訪問支持標(biāo)簽的云服務(wù)查看支持標(biāo)簽的阿里云服務(wù)。
標(biāo)簽鑒權(quán)是指在對資源進(jìn)行權(quán)限管理時(shí),可以對添加了同類標(biāo)簽的云資源對象授予相同的權(quán)限,一般在自定義權(quán)限策略中使用。
普通服務(wù)角色
OSS支持普通服務(wù)角色。
普通服務(wù)角色(Service Role)是一種可信實(shí)體為阿里云服務(wù)的RAM角色,旨在解決跨云服務(wù)的授權(quán)訪問問題。使用OSS的特定功能時(shí),會觸發(fā)用戶授權(quán)自動(dòng)創(chuàng)建普通服務(wù)角色并為角色授予對應(yīng)的資源訪問權(quán)限。創(chuàng)建完成后,OSS即可扮演此服務(wù)角色,代表您訪問其他云服務(wù)。
在您使用OSS服務(wù)的過程中,在進(jìn)行同/跨賬號同區(qū)域復(fù)制以及存儲空間清單時(shí)需使用普通服務(wù)角色來控制權(quán)限策略,具體可參考同賬號同區(qū)域復(fù)制和存儲空間清單。
您也可以在RAM中手動(dòng)創(chuàng)建、修改和刪除普通服務(wù)角色,并修改普通服務(wù)角色的權(quán)限。但修改角色或角色權(quán)限會對OSS提供的功能造成影響,請謹(jǐn)慎操作。