如何打造一套线上kafka集群安全环境

本文详细介绍了如何通过SASL/PLAIN认证和ACL授权来建立内网Kafka集群的安全环境。内容涵盖Kafka安全机制原理、SASL/PLAIN用户创建、配置修改、权限分配以及Java客户端的实现,确保认证授权功能正常运行。
摘要由CSDN通过智能技术生成
1.kafka安全简介
kafka社区在0.9.0.0版本正式添加了安全特性,并且在0.10.0.0版本中进一步完善。
Kafka的安全特性有如下几个方面:
1.连接认证。服务端与客户端、服务端之间、等等。支持两种认证机制SSL(等价于我们经常使用的TLS)和SASL
2.Zookeeper 与服务端的认证。
3.基于SSL的连接通道数据传输加密
4.客户端读写权限
5.支持可插拔的授权服务和与外部授权服务的集成。

认证(authentication)和授权(authorization)

  • 认证:证明自己的过程,对于kafka的认证你必须显示地提供者自己的身份信息来证明自己的身份时合法的。

  • 授权:验证认证过的用户可以访问那些资源。

现实的场景中认证和授权我们都是结合使用的。

认证机制分类:

-认证机制- -引入版本- -适用场景-
SSL 0.9.0 SSL做信道加密比较多,SSL认证不如SASL所以一般都会使用SSL来做通信加密
SASL/GSSAPI 0.9.9 主要是给 Kerberos 使用的。如果你的公司已经做了 Kerberos 认证(比如使用 Active Directory),那么使用 GSSAPI 是最方便的了。因为你不需要额外地搭建 Kerberos,只要让你们的 Kerberos 管理员给每个 Broker 和要访问 Kafka 集群的操作系统用户申请 principal 就好了。
SASL/PLAIN 0.10.2 简单的用户名密码认证,通常与SSL结合使用,对于小公司来说,没必要搭建公司级别的Kerberos,使用它就比较合适
SASL/SCRAM 0.10.2 PLAIN的加强版本,支持动态的用户增减
SASL/OAUTHBEARER 2.0 OAuth 2框架的集成
Deleation Token 1.1 Delegation Token 是在 1.1 版本引入的,它是一种轻量级的认证机制,主要目的是补充现有的 SASL 或 SSL 认证。如果要使用 Delegation Token,你需要先配置好 SASL 认证,然后再利用 Kafka 提供的 API 去获取对应的 Delegation Token。这样,Broker 和客户端在做认证的时候,可以直接使用这个 token,不用每次都去 KDC 获取对应的 ticket(Kerberos 认证)或传输 Keystore 文件(SSL 认证)。

ACL规则(kafka授权机制)

Principal P is[Allow/Denied] Operation O Fom Host H On Recourse R

Principal Kafka user

Operation 操作类型 比如 WRITE READ DESCRIBE

Host:kafka ip地址

resourse :资源 TOPIC CLUSTER GROUP 等等

权限列表:

img

2.使用SASL/PLAIN + ACL搭建内网kafak集群安全机制

由于SASL/PLAIN 创建用户时静态创建的,所以如果新增用户需要修改配置,然后重启kakfa集群。

2.1.创建KafkaServer (jass.config)

KafkaServer{
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_reader="reader"
user_writer="writer";
};

1.需要注意两个“;”的位置,一定不

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值