国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kafka安全認證機制詳解之SASL_PLAIN

這篇具有很好參考價值的文章主要介紹了Kafka安全認證機制詳解之SASL_PLAIN。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、概述

官方文檔:
https://kafka.apache.org/documentation/#security
在官方文檔中,kafka有五種加密認證方式,分別如下:

  • SSL:用于測試環(huán)境
  • SASL/GSSAPI (Kerberos) :使用kerberos認證,密碼是加密的,也是當前企業(yè)中使用最多的,最小支持版本0.9
  • SASL/PLAIN :使用簡單用戶名和密碼形式,生產(chǎn)環(huán)境中一般不使用,主要用于測試,最小支持版本0.10
  • SASL/SCRAM:主要解決PLAIN動態(tài)更新問題以及安全機制,最小支持版本0.10.2
  • SASL/OAUTHBEARER:基于OAuth2認證框架,最小支持版本2.0

幾種認證方式的詳細比較

  • SASL/GSSAPI 主要是給 Kerberos 使用的。GSSAPI 適用于本身已經(jīng)做了 Kerberos 認證的場景,這樣的話,SASL/GSSAPI 可以實現(xiàn)無縫集成。
  • SASL/PLAIN 是一個簡單的用戶名 / 密碼認證機制,通常與 SSL 加密搭配使用。對于一些小公司而言,搭建公司級的 Kerberos 可能并沒有什么必要,他們的用戶系統(tǒng)也不復雜,特別是訪問 Kafka 集群的用戶可能不是很多。對于 SASL/PLAIN 而言,這就是一個非常合適的應(yīng)用場景??傮w來說,SASL/PLAIN 的配置和運維成本相對較小,適合于小型公司中的 Kafka 集群。SASL/PLAIN 有這樣一個弊端:它不能動態(tài)地增減認證用戶,必須重啟 Kafka 集群才能令變更生效。因為所有認證用戶信息全部保存在靜態(tài)文件中,所以只能重啟 Broker,才能重新加載變更后的靜態(tài)文件。
  • SASL/SCRAM 通過將認證用戶信息保存在 ZooKeeper 的方式,避免了動態(tài)修改需要重啟 Broker 的弊端。在實際使用過程中,可以使用 Kafka 提供的命令動態(tài)地創(chuàng)建和刪除用戶,無需重啟整個集群。因此,如果打算使用 SASL/PLAIN,不妨改用 SASL/SCRAM 試試。不過要注意的是,后者是 0.10.2 版本引入的。
  • SASL/OAUTHBEARER 是 2.0 版本引入的新認證機制,主要是為了實現(xiàn)與 OAuth 2 框架的集成。 Kafka 不提倡單純使用 OAUTHBEARER,因為它生成的不安全的 JSON Web Token,必須配以 SSL 加密才能用在生產(chǎn)環(huán)境中。
  • Delegation Token 是在 1.1 版本引入的,它是一種輕量級的認證機制,主要目的是補充現(xiàn)有的 SASL 或 SSL 認證。 如果要使用 Delegation Token,需要先配置好 SASL 認證,然后再利用 Kafka 提供的 API 去獲取對應(yīng)的 Delegation Token。這樣,Broker 和客戶端在做認證的時候,可以直接使用這個 token,不用每次都去 KDC 獲取對應(yīng)的 ticket(Kerberos 認證)或傳輸 Keystore 文件(SSL 認證)。

二、SASL/PLAIN

SASL/PLAIN是基于用戶名密碼的認證方式,是比較常用的一種認證,通常與TLS一起用于加密以實現(xiàn)安全認證。

增加kafka配置

vim /opt/kafka_2.13-2.6.0/config/server.properties

# 增加以下配置,每臺節(jié)點都要配置
listeners=SASL_PLAINTEXT://host.name:port
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

# 分發(fā)配置,需要注意用戶名和路徑
scp /opt/kafka_2.13-2.6.0/config/server.properties root@kafka2-73085:/opt/kafka_2.13-2.6.0/config/

scp /opt/kafka_2.13-2.6.0/config/server.properties root@kafka3-73085:/opt/kafka_2.13-2.6.0/config/

增加kafka的權(quán)限配置信息

# 編輯配置文件
vim /opt/kafka_2.13-2.6.0/config/kafka_server_jaas.conf

# 增加以下配置
# 增加了兩個用戶 admin用戶和tly用戶,配置文件中間不能有注釋
KafkaServer {
     org.apache.kafka.common.security.plain.PlainLoginModule required
     username="admin"
     password="123456"
     user_admin="123456"
     user_tly="123456";
 };

# 分發(fā)配置文件
scp kafka_server_jaas.conf root@kafka2-73085:/opt/kafka_2.13-2.6.0/config/

scp kafka_server_jaas.conf root@kafka3-73085:/opt/kafka_2.13-2.6.0/config/

上面配置是新增了兩個用戶,admin和tly,這兩個用戶都是普通用戶,KafkaServer中的username、password配置的用戶和密碼,是用來broker和broker連接認證。在本例中,admin是代理broker間通信的用戶。user_userName配置為連接到broker的所有用戶定義密碼,broker使用這些驗證所有客戶端連接,包括來自其他broker的連接。

將JAAS位置作為JVM參數(shù)傳遞給broker

# 編輯 kafka-run-class.sh
vim /opt/kafka_2.13-2.6.0/bin/kafka-run-class.sh

# 更改第219行
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka_2.13-2.6.0/config/kafka_server_jaas.conf"

# 分發(fā)腳本
scp kafka-run-class.sh root@kafka2-73085:/opt/kafka_2.13-2.6.0/bin/kafka-run-class.sh       
scp kafka-run-class.sh root@kafka2-73085:/opt/kafka_2.13-2.6.0/bin/kafka-run-class.sh    

啟動kafka集群

kafka-server-start.sh -daemon /opt/kafka_2.13-2.6.0/config/server.properties 

這個時候集群啟動完畢已經(jīng)帶有權(quán)限

客戶端連接

查看topic列表

kafka-topics.sh --bootstrap-server kafka1-73085:9092 --list

遲遲不出結(jié)果,卡住了,實際上是沒有權(quán)限
kafka認證機制有哪些,大數(shù)據(jù),Kafka,kafka,安全,分布式
查看日志如下:
kafka認證機制有哪些,大數(shù)據(jù),Kafka,kafka,安全,分布式

配置權(quán)限信息

# 編輯權(quán)限文件
vim /root/auth.conf

# 輸入如下內(nèi)容
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="tly" password="123456";

username和password必須是kafka_server_jaas.conf中配置的。

使用帶賬號密碼配置文件連接

kafka-topics.sh --bootstrap-server kafka1-73085:9092 --list --command-config /root/auth.conf

已經(jīng)可以正常返回了,說明有權(quán)限認證通過了:
kafka認證機制有哪些,大數(shù)據(jù),Kafka,kafka,安全,分布式

創(chuàng)建topic

kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_1 --partitions 3 --replication-factor 3 --command-config /root/auth.conf

生產(chǎn)消息

kafka-console-producer.sh  --bootstrap-server \
kafka1-73085:9092 --topic topic_1 --producer.config /root/auth.conf 

消費消息

kafka-console-consumer.sh --bootstrap-server kafka1-73085:9092 \
--topic topic_1 --consumer.config /root/auth.conf

權(quán)限配置

# 修改server.properties 增加如下配置
# 指定通過ACL來控制權(quán)限
authorizer.class.name=kafka.security.authorizer.AclAuthorizer

# 指定超級管理員
super.users=User:admin

使用權(quán)限配置并且超級用戶是admin,這個用戶和我們上面配置的列表中的admin用戶相互映射,每個機器都需要配置然后重啟所有節(jié)點

# 配置用戶認證文件信息
vim /root/admin.conf
# 輸入如下內(nèi)容
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="123456";

# 重啟所有節(jié)點,每個節(jié)點都要執(zhí)行
# 停止節(jié)點
kafka-server-stop.sh

# 啟動節(jié)點
kafka-server-start.sh -daemon /opt/kafka_2.13-2.6.0/config/server.properties 

此時每個節(jié)點都有了權(quán)限認證

# 配置用戶認證文件
vim /root/admin.conf

# 輸入以下內(nèi)容
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="123456";

創(chuàng)建topic

這個時候使用auth.conf已經(jīng)不能創(chuàng)建topic了,使用admin.conf可以創(chuàng)建,因為admin賬號和配置的超級管理員一致;而auth.conf配置的是tly賬號;

kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_2 --partitions 3 --replication-factor 3 --command-conf /root/auth.conf

kafka認證機制有哪些,大數(shù)據(jù),Kafka,kafka,安全,分布式
不使用認證創(chuàng)建會一直卡主不動,其實也是沒權(quán)限的,時間久了就會報timeout異常

kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_3 --partitions 3 --replication-factor 3 

kafka認證機制有哪些,大數(shù)據(jù),Kafka,kafka,安全,分布式

kafka-acls控制權(quán)限

命令為:kafka-acls.sh
參數(shù)如下:

  • –add 增加權(quán)限 --remove 刪除權(quán)限
  • –allow-host 允許操作的主機 --deny-host 拒絕的主機
  • –allow-principal 允許操作的用戶 --deny-principal 拒絕用戶
  • –bootstrap-server 集群地址
  • –command-config 認證文件信息
  • –group 可以消費topic的消費者組
  • –list 查詢所有權(quán)限
  • –operation 增加操作權(quán)限
    • describe
    • describeConfigs
    • alter
    • read
    • delete
    • create
    • all
    • write
    • alterconfig
  • –topic 指定topic
查詢topic所有權(quán)限
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --list  --command-config /root/admin.conf
刪除所有權(quán)限
kafka-acls.sh --bootstrap-server  kafka1-73085:9092 --topic topic_1 --remove  --command-config /root/admin.conf
給用戶增加權(quán)限

給之前的用戶tly授權(quán)

kafka-acls.sh --bootstrap-server  kafka1-73085:9092  --add --allow-principal User:tly --topic topic_1 --operation all --command-config /root/admin.conf

使用tly用戶查看當前topic文章來源地址http://www.zghlxwxcb.cn/news/detail-812747.html

kafka-topics.sh --bootstrap-server kafka1-73085:9092  --list --command-config /root/auth.conf
回收權(quán)限
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --remove --allow-principal user:tly --topic topic_1 --operation all --command-config /root/admin.conf
增加權(quán)限并且增加IP限制
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add  --deny-principal User:tly --topic topic_1 --operation all --deny-host 127.0.0.1 --command-config admin.conf
生產(chǎn)者和消費者的權(quán)限設(shè)置
# 刪除所有權(quán)限信息
kafka-acls.sh --bootstrap-server kafka1-73085:9092  --topic topic_1 --remove --command-config /root/admin.conf

# 添加生產(chǎn)者權(quán)限
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --operation Write --topic topic_1 --command-config /root/admin.conf

# 添加消費權(quán)限
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --operation Read --topic topic_1 --command-config /root/admin.conf

# 消費消息
kafka-console-consumer.sh --bootstrap-server kafka1-73085:9092 --topic topic_1 --from-beginning --consumer.config /root/auth.conf

# 發(fā)現(xiàn)消費不到,原因是消費者組沒有權(quán)限
# 增加消費者組權(quán)限
kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --operation Read --topic topic_1 --group group_1 --command-config /root/admin.conf

# 再次執(zhí)行消費消息命令并增加分組信息即可以消費到數(shù)據(jù)
kafka-console-consumer.sh --bootstrap-server kafka1-73085:9092 --topic topic_1 --from-beginning --consumer.config /root/auth.conf --group group_1

到了這里,關(guān)于Kafka安全認證機制詳解之SASL_PLAIN的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • kafka配置SASL/PLAIN 安全認證

    為zookeeper添加SASL支持,在配置文件zoo.cfg添加 新建zk_server_jaas.conf文件,為Zookeeper添加賬號認證信息.這個文件你放在哪里隨意,只要后面zkEnv配置正確的路徑就好了。我是放在 /opt/zookeeper/conf/home 路徑下。zk_server_jaas.conf文件的內(nèi)容如下 Server { org.apache.kafka.common.security.plain.Plai

    2024年02月10日
    瀏覽(49)
  • Kerberos安全認證-連載12-Kafka Kerberos安全配置及訪問

    目錄 1.?Kafka配置Kerberos 2.?客戶端操作Kafka ???????3.?Java API操作Kafka 4. StructuredStreaming操作Kafka 5. Flink 操作Kafka 技術(shù)連載系列,前面內(nèi)容請參考前面連載11內(nèi)容:??????????????Kerberos安全認證-連載11-HBase Kerberos安全配置及訪問_IT貧道的博客-CSDN博客 Kafk

    2024年02月12日
    瀏覽(23)
  • 【kafka+Kraft模式集群+SASL安全認證】

    【kafka+Kraft模式集群+SASL安全認證】

    準備3個kafka,我這里用的kafka版本為:kafka_2.13-3.6.0,下載后解壓: 更改解壓后的文件名稱: cp kafka_2.13-3.6.0 kafka_2.13-3.6.0-1/2/3 分別得到kafka_2.13-3.6.0-1、kafka_2.13-3.6.0-2、kafka_2.13-3.6.0-3 copy一份config/kraft/server.properties配置文件,修改名稱 server-sasl.properties 進入各個config/kraft/server

    2024年02月03日
    瀏覽(27)
  • kafka 安裝 以及 Kraft 模式、安全認證配置

    kafka 安裝 以及 Kraft 模式、安全認證配置

    常見安裝:zookeeper + kafka zookeeper 單節(jié)點安裝 : apach官網(wǎng)下載對應(yīng)包:apache-zookeeper-3.7.1-bin.tar.gz 修改對應(yīng)配置文件 /conf/zoo_sample.cfg ,配置端口以及數(shù)據(jù)目錄 sh zkServer.sh start 啟動 、 sh zkServer.sh stop 停止、 sh zkServer.sh status 狀態(tài) sh zkCli.sh -server 客戶端 zookeeper 集群安裝: 在每個

    2024年02月10日
    瀏覽(31)
  • kafka安全認證與授權(quán)(SASL/PLAIN)

    SASL 鑒權(quán)協(xié)議,主要用來保證客戶端登錄服務(wù)器的時候,傳輸?shù)蔫b權(quán)數(shù)據(jù)的安全性,SASL是對用戶名和密碼加解密用的 SSL 是一種間于傳輸層(比如TCP/IP)和應(yīng)用層(比如HTTP)的協(xié)議。對傳輸內(nèi)容進行加密,如HTTPS 如果使用了SASL但是沒有使用SSL,那么服務(wù)端可以認證客戶端的身

    2023年04月25日
    瀏覽(21)
  • Apache zookeeper kafka 開啟SASL安全認證

    Apache zookeeper kafka 開啟SASL安全認證

    背景:我之前安裝的kafka沒有開啟安全鑒權(quán),在沒有任何憑證的情況下都可以訪問kafka。搜了一圈資料,發(fā)現(xiàn)有關(guān)于sasl、acl相關(guān)的,準備試試。 Kafka是一個高吞吐量、分布式的發(fā)布-訂閱消息系統(tǒng)。Kafka核心模塊使用Scala語言開發(fā),支持多語言(如Java、Python、Go等)客戶端,它可

    2024年03月14日
    瀏覽(25)
  • Kafka增加安全驗證安全認證,SASL認證,并通過spring boot-Java客戶端連接配置

    公司Kafka一直沒做安全驗證,由于是誘捕程序故需要面向外網(wǎng)連接,需要增加Kafka連接驗證,保證Kafka不被非法連接,故開始研究Kafka安全驗證 使用Kafka版本為2.4.0版本,主要參考官方文檔 官網(wǎng)對2.4版本安全驗證介紹以及使用方式地址: https://kafka.apache.org/24/documentation.html#secu

    2024年02月01日
    瀏覽(93)
  • Kafka配置Kerberos安全認證及與Java程序集成

    Kafka配置Kerberos安全認證及與Java程序集成

    本文主要介紹在 Kafka 中如何配置 Kerberos 認證,以及 java 使用 JAAS 來進行 Kerberos 認證連接。 本文演示為單機版。 查看 Kerberos 版本命令: klist -V 軟件名稱 版本 jdk 1.8.0_202 kafka 2.12-2.2.1 kerberos 1.15.1 Kerberos 是一種由 MIT(麻省理工大學)提出的網(wǎng)絡(luò)身份驗證協(xié)議,它旨在通過使用密

    2024年01月22日
    瀏覽(36)
  • Apache zookeeper kafka 開啟SASL安全認證 —— 筑夢之路

    ? Kafka是一個高吞吐量、分布式的發(fā)布-訂閱消息系統(tǒng)。Kafka核心模塊使用Scala語言開發(fā),支持多語言(如Java、Python、Go等)客戶端,它可以水平擴展和具有高吞吐量特性而被廣泛使用,并與多類開源分布式處理系統(tǒng)進行集成使用。 ? Kafka作為一款開源的、輕量級的、分布式、可

    2024年02月11日
    瀏覽(23)
  • Kafka-配置Kerberos安全認證(JDK8、JDK11)

    Kafka-配置Kerberos安全認證(JDK8、JDK11)

    一、相關(guān)配置 1、JAAS 配置文件 2、keytab 文件(kafka.service.keytab) 從 Kerberos 服務(wù)器上拷貝到目標機器 或 找運維人員要一份 3、Kerberos 配置文件(krb5.conf) krb5文件參數(shù)說明:krb5.conf(5) 從 Kerberos 服務(wù)器上拷貝到目標機器 或 找運維人員要一份 Tip: JDK11版本 sun.security.krb5.Config 類

    2024年02月15日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包