如果您(nin)需(xu)要對云服(fu)(fu)務(wu)平臺上購(gou)買的(de)(de)(de)(de)DMS for Kafka資(zi)源,給企業中的(de)(de)(de)(de)員(yuan)工設置不(bu)同的(de)(de)(de)(de)訪(fang)問權(quan)(quan)限,以(yi)達(da)到不(bu)同員(yuan)工之(zhi)間的(de)(de)(de)(de)權(quan)(quan)限隔離,您(nin)可以(yi)使用(yong)統一身份認(ren)證(zheng)服(fu)(fu)務(wu)(Identity and Access Management,簡(jian)稱IAM)進行精細(xi)的(de)(de)(de)(de)權(quan)(quan)限管理。該服(fu)(fu)務(wu)提(ti)供用(yong)戶(hu)身份認(ren)證(zheng)、權(quan)(quan)限分配(pei)、訪(fang)問控(kong)制等功(gong)能,可以(yi)幫(bang)助您(nin)安全的(de)(de)(de)(de)控(kong)制云服(fu)(fu)務(wu)資(zi)源的(de)(de)(de)(de)訪(fang)問。
通過(guo)(guo)IAM,您可以在(zai)帳號中(zhong)給員(yuan)(yuan)工創建IAM用戶,并(bing)使用策(ce)略(lve)來控(kong)制他(ta)(ta)們對云服(fu)務資源(yuan)的(de)(de)(de)(de)訪問范圍。例如您的(de)(de)(de)(de)員(yuan)(yuan)工中(zhong)有(you)(you)負責軟件開(kai)發的(de)(de)(de)(de)人員(yuan)(yuan),您希望他(ta)(ta)們擁有(you)(you)DMS for Kafka的(de)(de)(de)(de)使用權(quan)限,但是不希望他(ta)(ta)們擁有(you)(you)刪除Kafka實例等高危操(cao)作(zuo)的(de)(de)(de)(de)權(quan)限,那么您可以使用IAM為開(kai)發人員(yuan)(yuan)創建用戶,通過(guo)(guo)授予僅能使用Kafka實例,但是不允許刪除Kafka實例的(de)(de)(de)(de)權(quan)限策(ce)略(lve),控(kong)制他(ta)(ta)們對DMS for Kafka資源(yuan)的(de)(de)(de)(de)使用范圍。
如果帳號已經能滿足您(nin)的(de)要求(qiu),不需要創建(jian)獨(du)立的(de)IAM用(yong)戶進(jin)行權限(xian)管理,您(nin)可(ke)以跳(tiao)過本章節,不影響您(nin)使用(yong)DMS for Kafka的(de)其它(ta)功能。
IAM是云服務(wu)平(ping)臺提供(gong)權限(xian)管理的基礎服務(wu),無(wu)需(xu)付費即可使用(yong),您只需(xu)要為您帳(zhang)號中的資源進行付費。
關于IAM的詳細介紹,請參見《IAM產品介紹》。
說明DMS for Kafka的權限與(yu)(yu)策略基于(yu)分布式消息服務(wu)DMS,因此(ci)在IAM服務(wu)中為Kafka分配(pei)用戶與(yu)(yu)權限時,請選擇并(bing)使用“DMS”的權限與(yu)(yu)策略。
DMS for Kafka權限
默認情況下,管理(li)員創建的(de)IAM用(yong)戶(hu)沒有任何權(quan)限(xian),需要將(jiang)其加入用(yong)戶(hu)組(zu),并(bing)給用(yong)戶(hu)組(zu)授予(yu)策略或(huo)角(jiao)色,才(cai)能使得(de)用(yong)戶(hu)組(zu)中的(de)用(yong)戶(hu)獲得(de)對(dui)應(ying)的(de)權(quan)限(xian),這一過程稱為授權(quan)。授權(quan)后,用(yong)戶(hu)就(jiu)可以基于被授予(yu)的(de)權(quan)限(xian)對(dui)云(yun)服務進行(xing)操作(zuo)。
DMS for Kafka部署時(shi)通過物理區(qu)域劃分,為項(xiang)(xiang)目(mu)級服務。授權(quan)時(shi),“作用范圍”需(xu)要選擇“區(qu)域級項(xiang)(xiang)目(mu)”,然后在指定(ding)區(qu)域對(dui)應的項(xiang)(xiang)目(mu)中設置相關權(quan)限,并且(qie)該權(quan)限僅(jin)對(dui)此項(xiang)(xiang)目(mu)生效;如(ru)果在“所(suo)有(you)項(xiang)(xiang)目(mu)”中設置權(quan)限,則該權(quan)限在所(suo)有(you)區(qu)域項(xiang)(xiang)目(mu)中都(dou)生效。訪問DMS for Kafka時(shi),需(xu)要先切換至授權(quan)區(qu)域。
權限根據授(shou)權精細程度分為(wei)角色和(he)策略(lve)。
- 角色:IAM最初提供的一種根據用戶的工作職能定義權限的粗粒度授權機制。該機制以服務為粒度,提供有限的服務相關角色用于授權。由于云服務平臺各服務之間存在業務依賴關系,因此給用戶授予角色時,可能需要一并授予依賴的其他角色,才能正確完成業務。角色并不能滿足用戶對精細化授權的要求,無法完全達到企業對權限最小化的安全管控要求。
- 策略:IAM最新提供的一種細粒度授權的能力,可以精確到具體服務的操作、資源以及請求條件等。基于策略的授權是一種更加靈活的授權方式,能夠滿足企業對權限最小化的安全管控要求。例如:針對DMS for Kafka服務,管理員能夠控制IAM用戶僅能對實例進行指定的管理操作。多數細粒度策略以API接口為粒度進行權限拆分,DMS for Kafka支持的API授權項請參見《分布式消息服務Kafka API參考》的“權限策略和授權項”章節。
如下表所(suo)示(shi),包括了DMS for Kafka的所(suo)有系統權限。
表(biao) DMS for Kafka系統權(quan)限
| 系統角色/策略名稱 | 描述 | 類別 | 依賴關系 |
|---|---|---|---|
| DMS FullAccess | 分布式消息服務管理員權限,擁有該權限的用戶可以操作所有分布式消息服務的功能。 | 系統策略 | 無 |
| DMS UserAccess | 分布式消息服務普通用戶權限(沒有實例創建、修改、刪除、擴容)。 | 系統策略 | 無 |
| DMS ReadOnlyAccess | 分布式消息服務的只讀權限,擁有該權限的用戶僅能查看分布式消息服務數據。 | 系統策略 | 無 |
| DMS VPCAccess | 分布式消息服務租戶委托時需要授權的VPC操作權限。 | 系統策略 | 無 |
| DMS KMSAccess | 分布式消息服務租戶委托時需要授權的KMS操作權限。 | 系統策略 | 無 |
| DMS Administrator | 分布式消息服務的管理員權限。 | 系統角色 | 依賴Tenant Guest和VPC Administrator。 |
說明系統策略有包含OBS授權項,由于緩存的存在,對用戶、用戶組以及企業項目授予OBS相關的系統策略后,大概需要等待5分鐘系統策略才能生效。
下表列出(chu)了DMS for Kafka常用操作與系統策略的授(shou)權關系,您可以參(can)照該表選擇(ze)合適的系統策略。
表常用操作與(yu)系統策略的關系
| 操作 | DMS FullAccess | DMS UserAccess | DMS ReadOnlyAccess |
|---|---|---|---|
| 創建實例 | √ | × | × |
| 修改實例 | √ | × | × |
| 刪除實例 | √ | × | × |
| 變更實例規格 | √ | × | × |
| 重啟實例 | √ | √ | × |
| 查詢實例信息 | √ | √ | √ |
細粒度授權
使(shi)用自定義細粒度策略,請使(shi)用管理員用戶登(deng)錄IAM控制臺,按需(xu)選擇DMS的細粒度權限進行(xing)授權操作。DMS for Kafka細粒度權限依賴說明請參見下表。
表 DMS for Kafka細(xi)粒(li)度權限依賴說明
權限名稱 權限描述 權限依賴 dms:instance:get 查看實例詳情信息 無 dms:instance:getConnectorSinkTask 查看轉儲任務詳情 無 dms:instance:getBackgroundTask 查看實例后臺任務詳情 無 dms:instance:modifyAuthInfo 修改實例訪問密碼 無 dms:instance:resetAuthInfo 重置實例訪問密碼 無 dms:instance:scale 實例開啟擴容功能 ?vpc:vpcs:get
?vpc:ports:create
?vpc:securityGroups:get
?vpc:ports:get
?vpc:subnets:get
?vpc:vpcs:list
?vpc:publicIps:get
?vpc:publicIps:list
?vpc:ports:update
?vpc:publicIps:updatedms:instance:connector 實例開啟轉儲功能 ?vpc:vpcs:get
?vpc:ports:create
?vpc:securityGroups:get
?vpc:ports:get
?vpc:subnets:get
?vpc:vpcs:list
?vpc:publicIps:get
?vpc:publicIps:list
?vpc:ports:update
?vpc:publicIps:updatedms:instance:deleteConnectorSinkTask 刪除轉儲任務 無 dms:instance:modify 修改實例 ?vpc:vpcs:get
?vpc:ports:create
?vpc:securityGroups:get
?vpc:ports:get
?vpc:subnets:get
?vpc:vpcs:list
?vpc:publicIps:get
?vpc:publicIps:list
?vpc:ports:update
?vpc:publicIps:updatedms:instance:deleteBackgroundTask 刪除實例后臺任務 無 dms:instance:modifyStatus 重啟實例 無 dms:instance:createConnectorSinkTask 創建轉儲任務 無 dms:instance:delete 刪除實例 無 dms:instance:create 創建實例 ?vpc:vpcs:get
?vpc:ports:create
?vpc:securityGroups:get
?vpc:ports:get
?vpc:subnets:get
?vpc:vpcs:list
?vpc:publicIps:get
?vpc:publicIps:list
?vpc:ports:update
?vpc:publicIps:updatedms:instance:listConnectorSinkTask 查看轉儲任務列表 無 dms:instance:list 查看實例列表 無