存取控制RAM(Resource Access Management)是阿里雲提供的一項服務,可以協助您集中系統管理使用者身份與資源存取權限。企業內有多名員工或應用程式需要訪問Object Storage Service(以下簡稱OSS)的資源時,可以使用RAM服務做統一的許可權管理,按需為他們分配不同的存取權限。在使用Resource Access Management阿里雲產品的存取權限前,您需要瞭解雲產品能與RAM的哪些功能結合使用,從而更好地設計滿足業務需要的存取控制。本文介紹OSS支援的RAM功能以及這些功能與RAM協同工作的原理。
OSS支援的RAM功能
OSS支援的RAM功能及支援程度如下表所示:
RAM功能 | OSS是否支援 |
RAM使用者訪問 | 支援 |
安全性權杖(STS Token)訪問 | 支援 |
基於身份的策略(帳號級) | 支援 |
基於身份的策略(資源群組級) | 部分支援 |
操作級授權 | 支援 |
資源級授權 | 支援 |
服務級條件關鍵字 | 支援 |
標籤鑒權 | 部分支援 |
普通服務角色 | 支援 |
服務關聯角色 | 不支援 |
您可以訪問支援RAM的雲端服務查看所有支援RAM的阿里雲服務,訪問支援STS的雲端服務查看所有支援STS Token的雲端服務。
RAM使用者訪問
OSS支援RAM使用者訪問。
RAM使用者是RAM的一種實體身份類型,有唯一的身份ID。RAM使用者通常與某個特定的人或應用程式一一對應。RAM使用者使用其身份憑證訪問OSS時,OSS會校正該使用者對相關資源的存取權限。
身份憑證在建立RAM使用者時設定。建立RAM使用者只能由管理員帳號操作。通過控制台訪問雲資源的RAM使用者需要的身份憑證是登入名稱稱和登入密碼,通過OpenAPI調用訪問雲資源需要的身份憑證是存取金鑰AK(AccessKey)。建議您定期更換RAM使用者的密碼,不要將AK資訊明文寫入工程代碼,以提高RAM使用者身份憑證的安全性。更多資訊請參見身份管理。
說明管理員帳號是指阿里雲帳號(主帳號)或者擁有管理員權限的RAM使用者或RAM角色。
RAM使用者預設沒有任何許可權。建立完成後,您必須使用管理員帳號為RAM使用者授予權限原則才能使其擁有雲資源訪問或操作許可權。基於身份的權限原則包括系統權限原則Object Storage Service系統權限原則參考和自訂權限原則Object Storage Service自訂權限原則參考。系統權限原則由阿里雲建立,自訂權限原則由您自行建立。
操作文檔
安全性權杖(STS Token)訪問
OSS支援安全性權杖(STS Token)訪問。
安全性權杖(STS Token)是RAM角色訪問雲資源時使用的身份憑證,由RAM提供的STS(Security Token Service)服務為扮演RAM角色的可信實體頒發。RAM角色是RAM的一種虛擬身份類型,沒有長期身份憑證,需要被一個可信實體扮演。
對比使用存取金鑰AK(AccessKey)等長期憑證而言,使用STS Token這樣的臨時身份憑證可減少風險暴露時間長度,提升您雲上資產的安全。您可以訪問RAM角色概覽瞭解可信實體的含義以及使用RAM角色和STS Token的典型情境。
RAM角色預設沒有任何許可權,您必須使用管理員帳號為RAM角色授予權限原則才能使其擁有雲資源訪問或操作許可權。基於身份的權限原則包括Object Storage Service系統權限原則參考和Object Storage Service自訂權限原則參考。系統權限原則由阿里雲建立,自訂權限原則由您自行建立。
操作文檔
基於身份的策略
OSS支援基於身份的權限原則。
基於身份的權限原則可以授予RAM身份,如RAM使用者、RAM使用者組或RAM角色,用於定義上述身份可以在什麼條件下對哪些資源執行什麼操作。
從管理的角度看,基於身份的權限原則分為系統權限原則和自訂權限原則。系統權限原則由阿里雲建立和維護,您只能使用但不能修改或刪除此類權限原則。自訂權限原則由您自行建立和維護。您可以通過控制台或OpenAPI建立自訂權限原則。
從授權範圍看,基於身份的策略可以分為帳號級和資源群組級。帳號級的授權範圍是雲帳號內的所有資源。資源群組級的授權範圍是該資源群組內的所有資源。帳號級授權的優先順序高於資源群組級授權,關於二者的定義和範圍請參見權限原則模型。您可以在為RAM身份授權時指定授權範圍。
參考文檔
操作級授權
OSS支援操作級的授權。
在權限原則文法中,操作(Action)元素用於描述許可權允許或拒絕的特定操作,一般情況下與其關聯的雲產品API同名。Action元素的格式為oss:<action-name>
。
OSS支援操作級的授權粒度,意味著您可以在權限原則中,為某一具體操作設定存取權限。
操作級授權通常用於使用自訂權限原則進行存取控制。
您可以訪問RAM Policy常見樣本確認OSS的常用RAM代碼資訊,或查看支援RAM的雲端服務瞭解其他雲產品的RAM代碼資訊。
關於OSS支援的所有操作的列表,請參見RAM Policy。
OSS權限原則中的Action元素樣本
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo"
]
資源級授權
OSS支援資源級的授權。
在權限原則文法中,資源(Resource)元素用於描述許可權允許或拒絕執行操作的一個或多個資來源物件。資源是雲端服務呈現給使用者與之互動的對象實體的一種抽象,例如:OSS儲存空間或ECS執行個體等。Resource元素通過雲端服務定義的資源ARN(Aliyun Resource Name)來統一標識,具體格式為acs:oss:<region>:<account-id>:<relative-id>。對於不支援資源級授權的操作,使用萬用字元(*)描述該操作應用於所有資源。
OSS支援資源級的授權粒度,意味著您可以在權限原則中指定某一具體資來源物件的存取權限。資源級授權通常用於使用自訂權限原則進行存取控制。關於OSS的所有資源清單,請參見RAM Policy。
OSS權限原則中的Resource元素樣本
"Resource": [
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]
服務級條件關鍵字
OSS支援服務級條件關鍵字。
在權限原則文法中,條件(Condition)元素用於指定授權生效的限制條件,是可選元素。Condition元素由一個或多個條件子句構成。一個條件子句由條件操作類型、條件關鍵字和條件值組成。條件操作類型由RAM服務定義,條件關鍵字包括通用條件關鍵字(命名格式:acs:<condition-key>
)和服務及條件關鍵字(命名格式:oss:<condition-key>
),條件值根據關鍵字的設定不同而不同。關於Condition的詳細說明請參見權限原則基本元素。
支援服務級條件關鍵字,意味著可以在授權具體操作和資來源物件時,額外指定授權生效的限制條件。服務級條件關鍵字通常用於使用自訂權限原則進行存取控制。關於適用於OSS的服務級條件關鍵字列表,請參見RAM Policy。
OSS權限原則中的服務級條件關鍵字樣本
"Condition": {
"StringEquals": {
"vpc:TargetAccountRDId": [
"12****"
]
},
"Bool": {
"acs:SecureTransport": [
"true"
]
}
標籤鑒權
OSS支援標籤鑒權。
在權限原則文法中,標籤是一類通用條件關鍵字,包含acs:ResourceTag/{tag-key}和acs:RequestTag/{tag-key}。標籤可用來從不同維度對具有相同特徵的雲資源進行分類、搜尋和彙總,讓資源管理變得更加輕鬆。您可以訪問支援標籤的雲端服務查看支援標籤的阿里雲服務。
標籤鑒權是指在對資源進行許可權管理時,可以對添加了同類標籤的雲資來源物件授予相同的許可權,一般在自訂權限原則中使用。
普通服務角色
OSS支援普通服務角色。
普通服務角色(Service Role)是一種可信實體為阿里雲服務的RAM角色,旨在解決跨雲端服務的授權訪問問題。使用OSS的特定功能時,會觸發使用者授權自動建立普通服務角色並為角色授予對應的資源存取權限。建立完成後,OSS即可扮演此服務角色,代表您訪問其他雲端服務。
在您使用OSS服務的過程中,在進行同/跨帳號同地區複製以及儲存空間清單時需使用普通服務角色來控制權限原則,具體可參考同帳號同地區複製和儲存空間清單。
您也可以在RAM中手動建立、修改和刪除普通服務角色,並修改普通服務角色的許可權。但修改角色或角色許可權會對OSS提供的功能造成影響,請謹慎操作。