设置Kafka管理员权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Select/Deselect All”。
设置用户对Topic的创建权限
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Create”。
说明:
目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式创建Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式创建Topic。
注意:目前Kafka只支持"--bootstrap-server"方式创建Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权
设置用户对Topic的删除权限
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Delete”。
说明:
目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式删除Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式删除Topic。
注意:目前Kafka只支持对"--bootstrap-server"方式删除Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权
设置用户对Topic的查询权限
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Describe”和“Describe Configs”。
说明:
目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式查询Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式查询Topic。
注意:目前Kafka只支持对"--bootstrap-server"方式查询Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权
设置用户对Topic的生产权限
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Publish”。
设置用户对Topic的消费权限
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Consume”。
说明:
因为消费Topic时,涉及到Offset的管理操作,必须同时开启ConsumerGroup的“Consume”权限,详见“设置用户对ConsumerGroup Offsets 的提交权限”
设置用户对Topic的扩容权限(增加分区)
在“Topic”配置Topic名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Alter”。
设置用户对Topic的配置修改权限
当前Kafka内核暂不支持基于“--bootstrap-server”的Topic参数修改行为,故当前Ranger不支持对此行为的鉴权操作。
设置用户对Cluster的所有管理权限
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Kafka Admin”。
设置用户对Cluster的创建权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - cluster”的策略,单击按钮编辑策略。
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Create”。
说明:
对于Cluster的Create操作鉴权主要涉及以下两个场景:
集群开启了“auto.create.topics.enable”参数后,客户端向服务的还未创建的Topic发送数据的场景,此时会判断用户是否有集群的Create权限
对于用户创建大量Topic的场景,如果授予用户Cluster Create权限,那么该用户可以在集群内部创建任意Topic
设置用户对Cluster的配置修改权限
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Alter Configs”。
说明:
此处的配置修改权限,指的是Broker、Broker Logger的配置权限。
当授予用户配置修改权限后,即使不授予配置查询权限也可查询配置详情(配置修改权限高于且包含配置查询权限)。
设置用户对Cluster的配置查询权限
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Describe”和 “Describe Configs”。
说明:
此处查询指的是查询集群内的Broker、Broker Logger信息。该查询不涉及Topic。
设置用户对Cluster的Idempotent Write权限
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Idempotent Write”。
说明:
此权限会对用户客户端的Idempotent Produce行为进行鉴权。
设置用户对Cluster的分区迁移权限管理
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Alter”。
说明:
Cluster的Alter权限可以对以下三种场景进行权限控制:
Partition Reassign场景下,迁移副本的存储目录。
集群里各分区内部leader选举。
Acl管理(添加或删除)。
其中1和2都是集群内部Controller与Broker间、Broker与Broker间的操作,创建集群时,默认授予内置kafka用户此权限,普通用户授予此权限没有意义。
3涉及Acl的管理,Acl设计的就是用于鉴权,由于目前kafka鉴权已全部托管给Ranger,所以这个场景也基本不涉及(配置后亦不生效)。
设置用户对Cluster的Cluster Action权限
在“cluster”右侧输入并选择集群名。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Cluster Action”。
说明:
此权限主要对集群内部副本主从同步、节点间通信进行控制,在集群创建时已经授权给内置kakfa用户,普通用户授予此权限没有意义。
设置用户对TransactionalId的权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - transactionalid”的策略,单击按钮编辑策略。
在“transactionalid”配置事务ID。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Publish”和 "Describe"。
说明:
“Publish”权限主要对用户开启了事务特性的客户端请求进行鉴权,例如事务开启、结束、提交offset、事务性数据生产等行为。
“Describe”权限主要对于开启事务特性的客户端与Coordinator的请求进行鉴权。
建议在开启事务特性的场景下,给用户同时授予“Publish”和“Describe”权限。
设置用户对DelegationToken的权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - delegationtoken”的策略,单击按钮编辑策略。
在“delegationtoken”配置delegationtoken。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“ Describe”。
说明:
当前Ranger对DelegationToken的鉴权控制仅限于对查询的权限控制,不支持对DelegationToken的create、renew、expire操作的权限控制。
设置用户对ConsumerGroup Offsets 的查询权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
在“consumergroup”配置需要管理的consumergroup。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Describe”。
设置用户对ConsumerGroup Offsets 的提交权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
在“consumergroup”配置需要管理的consumergroup。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Consume”。
说明:
当给用户授予了ConsumerGroup的“Consume”权限后,用户会同时被授予“Describe”权限。
设置用户对ConsumerGroup Offsets 的删除权限
在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。
选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。
在“consumergroup”配置需要管理的consumergroup。
在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
单击“Add Permissions”,勾选“Delete”。
说明:
当给用户授予了ConsumerGroup的“Delete”权限后,用户会同时被授予“Describe”权限。