Ranger配置kafka权限策略

举报
张子 发表于 2021/03/18 14:56:23 2021/03/18
【摘要】 通过Ranger为Kafka用户配置Kafka主题的读、写、管理权限以及集群的管理权限

操作场景

管理员可通过Ranger为Kafka用户配置Kafka主题的读、写、管理权限以及集群的管理权限,本章节以为用户“test”添加 “test” 主题的“生产”权限。

前提条件

已安装Ranger服务,并创建需要配置权限的用户、用户组、角色

操作步骤

第一步:创建需要配置策略的用户kafkaUser

点击“系统>权限>用户>添加用户”打开添加用户界面,添加kafkaUser用户

使用kafkaUser用户重新登录FusionInsight Manager修改kafkaUser用户密码为kafkaUser@123(修改密码后等待5分钟[ranger的用户同步策略],该用于会被同步至ranger中)

       

第二步:在ranger中配置策略

登录FusionInsight Manager界面,点击“集群>Ranger”进入Rangerf服务界面,点击“RangerAdmin”进入ranger管理界面,在ranger管理界面点击“kafka”进入策略配置界面[存在默认策略权限]

为kafkaUser添加拒绝想topic生产策略,保存退出即可

在服务器客户端测试策略是否生效

前提:客户端已经安装

此时可以访问说明权限并未添加成功,正在询问华为技术人员。https://bbs.huaweicloud.com/forum/thread-114536-1-1.html

配置参数说明

参数名称 描述
topic

配置当前策略的参数名称,支持多个值以及通配符[*]

include策略适用于当前输入对象,execlude策略适用于除去当前输入内容之外的其他对象

Allow Conditions 策略允许条件

在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户。

单击“Policy Conditions”,添加策略适用的IP地址范围。

单击“Add Permissions”,添加对应权限。
Publish:生产权限。
Consume:消费权限。
Configure:topic扩容权限。
Describe:查询权限。
Create: 创建主题权限。
Delete: 删除主题权限。
Describe Configs:查询配置权限。
Alter Configs:修改配置权限。
Select/Deselect All:全选/取消全选。

如需添加多条权限控制规则,可单击按钮添加。

如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。

Deny Conditions
策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类型,拒绝条件的优先级高于“Allow Conditions”中配置的允许条件

设置kafka管理员权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。
3.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
4.单击“Add Permissions”,勾选“Select/Deselect All”。

设置用户对topic的消费权限

因为消费Topic时,涉及到Offset的管理操作,必须同时开启ConsumerGroup的“Consume”权限,详见“设置用户对ConsumerGroup Offsets 的提交权限”

设置用户对Cluster的所有管理权限

1.在“cluster”右侧输入并选择集群名。
2.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
3.单击“Add Permissions”,勾选“Kafka Admin”。

设置用户对Cluster的创建权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - cluster”的策略,单击按钮编辑策略。
3.在“cluster”右侧输入并选择集群名。
4.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
5.单击“Add Permissions”,勾选“Create”。

对于Cluster的Create操作鉴权主要涉及以下两个场景:
1.集群开启了“auto.create.topics.enable”参数后,客户端向服务的还未创建的Topic发送数据的场景,此时会判断用户是否有集群的Create权限
2.对于用户创建大量Topic的场景,如果授予用户Cluster Create权限,那么该用户可以在集群内部创建任意Topic

设置用户对Cluster的配置修改权限

1.在“cluster”右侧输入并选择集群名。
2.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
3.单击“Add Permissions”,勾选“Alter Configs”。

此处的配置修改权限,指的是Broker、Broker Logger的配置权限。
当授予用户配置修改权限后,即使不授予配置查询权限也可查询配置详情(配置修改权限高于且包含配置查询权限)。

设置用户对Cluster的配置查询权限

1.在“cluster”右侧输入并选择集群名。
2.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
3.单击“Add Permissions”,勾选“Describe”和 “Describe Configs”。

此处查询指的是查询集群内的Broker、Broker Logger信息。该查询不涉及Topic

设置用户对Cluster的Idempotent Write权限

1.在“cluster”右侧输入并选择集群名。
2.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
3.单击“Add Permissions”,勾选“Idempotent Write”。

此权限会对用户客户端的Idempotent Produce行为进行鉴权。

设置用户对TransactionalId的权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - transactionalid”的策略,单击按钮编辑策略。
1.在“transactionalid”配置事务ID。
2.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
3.单击“Add Permissions”,勾选“Publish”和 "Describe"。 

“Publish”权限主要对用户开启了事务特性的客户端请求进行鉴权,例如事务开启、结束、提交offset、事务性数据生产等行为。
“Describe”权限主要对于开启事务特性的客户端与Coordinator的请求进行鉴权。
建议在开启事务特性的场景下,给用户同时授予“Publish”和“Describe”权限。

设置用户对DelegationToken的权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - delegationtoken”的策略,单击按钮编辑策略。
3.在“delegationtoken”配置delegationtoken。
4.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
5.单击“Add Permissions”,勾选“ Describe”。

当前Ranger对DelegationToken的鉴权控制仅限于对查询的权限控制,不支持对DelegationToken的create、renew、expire操作的权限控制。

设置用户对ConsumerGroup Offsets 的查询权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
3.在“consumergroup”配置需要管理的consumergroup。
4.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
5.单击“Add Permissions”,勾选“Describe”。

设置用户对ConsumerGroup Offsets 的提交权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
3.在“consumergroup”配置需要管理的consumergroup。
4.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
5.单击“Add Permissions”,勾选“Consume”。

当给用户授予了ConsumerGroup的“Consume”权限后,用户会同时被授予“Describe”权限。

设置用户对ConsumerGroup Offsets 的删除权限

1.在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
2.选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
3.在“consumergroup”配置需要管理的consumergroup。
4.在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
5.单击“Add Permissions”,勾选“Delete”。

当给用户授予了ConsumerGroup的“Delete”权限后,用户会同时被授予“Describe”权限。

添加策略有效期

在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“save”保存

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。