IAM授權是指授權范圍在具體資源池或全局的授權關系。可以在授權管理、用戶組或用戶中查看IAM授權關系。
企業項目授權是指在企業項目上,設置用戶組和設置策略后形成的授權關系。只能在企業項目下,通過查看用戶組的關聯策略,查看企業項目授權關系。
IAM授權與企業項目授權的區別
支持的服務
IAM授權支持的服務,可以參考使用IAM授權的云服務。
企業項目授權支持的云服務及對應資源類型請以控制臺界面顯示為準。
進入“企業項目管理”頁面,在企業項目列表中單擊任一企業項目操作列的“查看資源”,系統進入企業項目詳情頁面,在“資源”頁簽下可查看企業項目支持的服務及其對應資源類型等信息。此處展示的服務代表支持進行企業項目授權。
資源隔離
- IAM授權時,支持通過資源池隔離授權(對于作用范圍時資源池級別的策略)和資源路徑實現資源隔離(對于支持策略中使用資源路徑“Resource”字段進行資源隔離的云服務)
- 企業項目授權時,支持通過創建企業項目,隔離企業不同項目之間的資源,企業項目的資源隔離效果不受物理資源池的限制,可以實現子用戶僅能看到不同資源池上部分資源的效果。
授權覆蓋
相同Action時,IAM授權的優先級高于企業項目授權,會表現出授權覆蓋的鑒權結果。例如,用戶組1在IAM中授權了允許創建云主機,在企業項目A上授權了拒絕創建云主機,那么對于一臺華東1的云主機,如果這臺云主機位于企業項目A下,此時用戶組1的用戶進行創建云主機的操作時,鑒權結果為Allow,因為IAM授權在相同Action下優先級高于企業項目授權。
用戶組1在華東1資源池上的IAM授權策略中包含以下Action:
用戶組1在華東1資源池上的IAM授權策略中包含以下Action:
{
"Action": [
"ecs:cloudServers:create"
],
"Effect": "Allow"
}
用戶組1在企業項目A的授權策略中包含以下Action:
{
"Action": [
"ecs:cloudServers:create"
],
"Effect": "Deny"
}
同理,將IAM和企業項目中的策略更換為以下的形式,在相同情境下,鑒權結果為Deny。
用戶組1在華東1資源池上的IAM授權策略中包含以下Action:
{
"Action": [
"ecs:cloudServers:create"
],
"Effect": "Deny"
}
用戶組1在企業項目A的授權策略中包含以下Action:
{
"Action": [
"ecs:cloudServers:create"
],
"Effect": "Allow"
}
此外,對于相同Action,IAM授權的范圍也會覆蓋企業項目的授權范圍。例如,華東1資源池上有云主機a和云主機b,云主機資源a屬于企業項目A,云主機資源b屬于企業項目B。此時,如果用戶組僅存在下列授權,沒有在企業項目B上進行授權,用戶組1下的子用戶仍讓可以看見企業項目B下的云主機b,這是因為華東1資源池上存在相同Action的讀取權限,鑒權時優先判斷該用戶能夠查看華東1上的所有資源(云主機a和云主機b),覆蓋了企業項目的資源隔離效果。
用戶組1在華東1資源池上的IAM授權策略中包含以下Action:
{
"Action": [
" ecs:cloudServers:list"
],
"Effect": "Allow"
}
用戶組1在企業項目A的授權策略中包含以下Action:
{
"Action": [
" ecs:cloudServers:list"
],
"Effect": "Allow"
}
而如果策略中包含不同的Action,則IAM和企業項目的授權都生效,以下示例表示用戶可以在企業項目A上創建云主機,也可以在華東1資源池上查看云主機安全組列表。
用戶組1在華東1資源池上的IAM授權策略中包含以下Action:
{
"Action": [
" ecs:ServersGroups:list"
],
"Effect": "Allow"
}
用戶組1在企業項目A的授權策略中包含以下Action:
{
"Action": [
"ecs:cloudServers:create"
],
"Effect": "Allow"
}