多用户访问控制

介绍

多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。

适用于下列使用场景:

  • 中大型企业客户:对公司内多个员工授权管理;

  • 偏技术型vendor或SAAS的平台商:对代理客户进行资源和权限管理;

  • 中小开发者或小企业:添加项目成员或协作者,进行资源管理。

创建用户

  1. 主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。

  2. 在左侧导航栏点击“用户管理”,在“子用户管理列表”页,点击“新建用户”。

  3. 在弹出的“新建用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。

权限策略配置

权限策略有两种类型:系统权限策略自定义权限策略,分别实现BMS的产品级权限和实例级权限控制。

  • 系统策略:百度智能云系统为管理资源而预定义的权限集,这类策略可直接为子用户授权,用户只能使用而不能修改。
  • 自定义策略:由用户自己创建,更细化的管理资源的权限集,可以针对单个实例配置权限,更加灵活的满足账户对不同用户的差异化权限管理。。

系统权限策略

系统权限策略是被用户经常使用的权限集合,不可被用户编辑。Kafka默认提供了3种系统权限策略,供配置系统权限策略时选择,如下表:

策略名称 描述 包含权限
KAFKAReadPolicy 只读权限 topic查询操作权限;证书查询操作权限;
KAFKAWritePolicy 读写权限 topic查询操作权限;topic更新操作权限;证书查询操作权限;证书更新操作权限;
KAFKAFullControlPolicy 完全控制权限 kafka产品的全部权限;

自定义权限策略

自定义权限策略允许用户根据自己的需求灵活配置自己的权限策略;配置方式包含2中方式:策略生成器 和 编辑策略文件。

使用策略生成器配置权限

策略生成器,适合于需要控制资源访问的场景。kafka权限控制的资源包括topic和证书两种,使用策略生成器定义的策略,可以控制到某个具体要访问的资源;比如:可以设置用户允许下载哪些证书,也可以设置用户可以修改和删除哪些topic。

场景举例:配置用户可以下载的证书。

操作步骤:

创建权限策略:多用户访问控制 -> 策略管理 -> 创建策略;

image.png

填写策略名称,选择服务类型为【百度消息服务 KAFKA】;

策略生成方式,选择【策略生成器】;

因为我们不配置针对topic的角色,所以不需要配置kafka主题的权限。直接配置kafka证书的权限。选择【下载证书】权限 -> 选择证书所在的地域 -> 选择要授权的证书;点击【完成】按钮后,完成策略配置;

此时从策略管理的【自定义策略】列表中可以看到刚刚定义的策略;

使用ACL策略文件配置权限

ACL策略配置文件,可以理解为配置权限策略规则的json字符串,无论是系统策略还是用户自定义策略,最终都会映射成为一个ACL的json串。使用ACL策略配置文件,用户可以非常灵活的定义权限策略,但是需要用户理解ACL字符串的含义。Kafka提供了一个公用的ACL配置字符串模板,用户可以参照模板配置自己的策略。比如:配置单独的一个创建topic的权限策略;编辑ACL权限策略的语法可参考文档策略语法

场景举例:配置创建topic的权限策略,并授权给用户。

操作步骤:

创建权限策略:多用户访问控制 -> 策略管理 -> 创建策略;

image.png

填写策略名称,选择服务类型为【百度消息服务 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权限,对应证书列表页面中【查看主题】页面中对证书权限的编辑操作;