多用户访问控制
介绍
多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。
适用于下列使用场景:
- 中大型企业客户:对公司内多个员工授权管理;
- 偏技术型vendor或SAAS的平台商:对代理客户进行资源和权限管理;
- 中小开发者或小企业:添加项目成员或协作者,进行资源管理。
创建用户
-
主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。
- 在左侧导航栏点击“用户管理”,在“子用户管理列表”页,点击“新建用户”。
- 在弹出的“新建用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。
权限策略配置
权限策略有两种类型:系统权限策略 和 自定义权限策略,分别实现BMS的产品级权限和实例级权限控制。
- 系统策略:百度智能云系统为管理资源而预定义的权限集,这类策略可直接为子用户授权,用户只能使用而不能修改。
- 自定义策略:由用户自己创建,更细化的管理资源的权限集,可以针对单个实例配置权限,更加灵活的满足账户对不同用户的差异化权限管理。
系统权限策略
系统权限策略是被用户经常使用的权限集合,不可被用户编辑。Kafka默认提供了3种系统权限策略,供配置系统权限策略时选择,如下表:
策略名称 | 描述 | 包含权限 |
---|---|---|
KAFKAReadPolicy | 只读权限 | topic查询操作权限;证书查询操作权限; |
KAFKAWritePolicy | 读写权限 | topic查询操作权限;topic更新操作权限;证书查询操作权限;证书更新操作权限; |
KAFKAFullControlPolicy | 完全控制权限 | kafka产品的全部权限; |
自定义权限策略
自定义权限策略允许用户根据自己的需求灵活配置自己的权限策略;配置方式包含2中方式:策略生成器 和 编辑策略文件。
使用策略生成器配置权限
策略生成器,适合于需要控制资源访问的场景。kafka权限控制的资源包括topic和证书两种,使用策略生成器定义的策略,可以控制到某个具体要访问的资源;比如:可以设置用户允许下载哪些证书,也可以设置用户可以修改和删除哪些topic。
场景举例:配置用户可以下载的证书。
操作步骤:
创建权限策略:多用户访问控制 -> 策略管理 -> 创建策略;
填写策略名称,选择服务类型为【百度消息服务 KAFKA】;
策略生成方式,选择【策略生成器】;
因为我们不配置针对topic的角色,所以不需要配置kafka主题的权限。直接配置kafka证书的权限。选择【下载证书】权限 -> 选择证书所在的地域 -> 选择要授权的证书;点击【完成】按钮后,完成策略配置;
此时从策略管理的【自定义策略】列表中可以看到刚刚定义的策略;
使用ACL策略文件配置权限
ACL策略配置文件,可以理解为配置权限策略规则的json字符串,无论是系统策略还是用户自定义策略,最终都会映射成为一个ACL的json串。使用ACL策略配置文件,用户可以非常灵活的定义权限策略,但是需要用户理解ACL字符串的含义。Kafka提供了一个公用的ACL配置字符串模板,用户可以参照模板配置自己的策略。比如:配置单独的一个创建topic的权限策略;编辑ACL权限策略的语法可参考文档策略语法。
场景举例:配置创建topic的权限策略,并授权给用户。
操作步骤:
创建权限策略:多用户访问控制 -> 策略管理 -> 创建策略;
填写策略名称,选择服务类型为【百度消息服务 KAFKA】,策略生成方式,选择【编辑策略文件】,策略模板选择【kafka_acl】;
配置ACL字符串,包含创建topic权限,创建topic权限使用CreateTopic字符串标识;其它权限标签可参考下文的权限模型中的权限标签。
点击【完成】后,可以在【自定义策略】列表中查看到新建的策略;
用户授权
在“用户管理->子用户管理列表页”的对应子用户的“操作”列选择“添加权限”,并为用户选择系统权限或自定义策略进行授权。
说明:如果在不修改已有策略规则的情况下修改某子用户的权限,只能通过删除已有的策略并添加新的策略来实现,不能取消勾选已经添加过的策略权限。
子用户登录
主账号完成对子用户的授权后,可以将链接发送给子用户;子用户可以通过IAM用户登录链接登录主账号的管理控制台,根据被授权的策略对主账户资源进行操作和查看。
其他详细操作参考:多用户访问控制。
Kafka权限模型
kafka权限模型主要描述用户可以控制哪些操作的权限,以及控制权限的粒度。
- kafka权限模型涉及2种资源的权限管理:topic权限和证书权限;对topic权限的管理,即子用户对topic具有哪些操作的权限;同理,对证书权限的管理,即子用户对证书具有哪些操作权限;
-
如上图所示,整个权限模型分为3层,其中叶子节点为粒度最细的权限定义,每种权限都通过一个字符串标签唯一标识,用于在定义权限策略时区分权限。权限的含义如下表;
权限标签 层级 描述 FULL_CONTROL 1 等同于拥有『父账号』的全部权限; AdminTopic 1 针对topic的增删改查权限,包含所有对topic操作的细粒度权限,比如:创建topic; AdminCertificate 1 针对证书的增删改查权限,包含所有对证书操作的细粒度权限; TopicReadOper 2 topic的查询操作权限,包含topic列表、详情等查询操作; TopicWriteOper 2 topic的更新操作权限,包含topic的创建、修改、删除等操作; CertificateReadOper 2 证书的查询操作权限,包含证书列表、下载证书等查询操作; CertificateWriteOper 2 证书的更新操作权限,包含证书的创建、修改、删除、重新生成等操作; ListTopic 3 查看topic列表权限,对应主题列表页面; DescTopic 3 查看topic详情权限,对应主题列表中点击topic名称后进入的页面; DescTopicCertificate 3 查看topic授权的证书列表权限,对应主题列表页面中【查看证书】操作; CreateTopic 3 查看topic授权的证书列表权限,对应主题列表页面中【创建主题】操作; AlterTopic 3 修改topic元信息权限,在目前的控制台中没有对应操作; DeleteTopic 3 删除topic权限,对应主题列表页面中【创建主题】操作; AddTopicPartition 3 为topic添加分区的权限,对应主题列表页面中【扩容分区】操作; UpdateTopicCertificate 3 修改topic证书授权,对应主题列表页面中【查看证书】页面中对证书权限的编辑操作; ListCertificate 3 查看证书列表权限,对应证书列表页面; DescCertificate 3 查看证书详情权限,在目前的控制台中没有对应操作; DownloadCertificate 3 下载证书权限,对应证书列表页面中的密钥下载链接; DescCertificateTopic 3 查看证书对应topic列表,对应证书列表页面中的【查看主题】操作打开的页面; CreateCertificate 3 创建证书权限,对应证书列表页面中的【创建证书】操作; AlterCertificate 3 修改证书权限,对应证书列表页面中的修改证书名称操作; DeleteCertificate 3 删除证书权限,对应证书列表页面中的【删除证书】操作; RebuildCertificate 3 重新生成证书权限,对应证书列表页面中的【重新生成】操作; UpdateCertificateTopic 3 修改证书可以访问的topic权限,对应证书列表页面中【查看主题】页面中对证书权限的编辑操作;