前提知识:

1. 一旦对Kafka启用Sentry授权以后,kafka用户就是管理员,一切管理员操作都需要使用kafka用户来操作,这个与我们在Hive/Impala中使用Sentry时,hive用户是管理员原理是一样的
2. 如果只是测试系统,建议将Sentry权限的cache刷新间隔调低,这次测试由默认的30s改为了1ms,如果使用默认,将需要等待30s才能让新的权限生效。
3. 在给Topic赋权read或者write权限时,务必同时带上describe权限,否则权限不生效。当然你也可以将权限设置为ALL。

Kafka支持的授权操作


1.ALL,代表资源的所有操作
2.read
3.write
4.create
5.delete
6.alter
7.describe
8.clusteraction

kafka-sentry授权命令

#kafka服务的超级管理员为kafka
kinit kafka/admin

#列出Sentry中的角色
kafka-sentry -lr

#创建角色
kafka-sentry -cr -r xiet

#将角色赋予给用户组
kafka-sentry -arg -r xiet -g xiet

#给角色赋权可以给testTopic写入权限
kafka-sentry -gpr -r xiet -p "Topic=testTopic->action=write"

#给角色赋权可以给testTopic的describe权限
kafka-sentry -gpr -r xiet -p "Topic=testTopic->action=describe"

#给角色赋权可以给testTopic的read权限
kafka-sentry -gpr -r xiet -p "Topic=xt_test_flume2hdfs->action=read"

#给消费组读权限
kafka-sentry -gpr -r xiet -p "CONSUMERGROUP=testgroup->action=read"

#给消费组读权限
kafka-sentry -gpr -r xiet -p "CONSUMERGROUP=testgroup->action=describe"

#查看topic消费信息
kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper beta2:2181 --group test --topic kafka_kudu_topic_offset_3

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐