Post

Kafka SASL/PLAIN 설정

1. 인증정보 conf 파일 구성

1) kafka_server_jaas.conf 생성

두 사용자(admin 및 alice)를 정의한다.

  • 생성 위치: ../config/kafka_server_jaas.conf
1
2
3
4
5
6
7
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret"
    user_alice="alice-secret";
};
  • username, password: Super 유저 설정

  • user_[userName]=”[passwords]”

2. Server 설정

1) server.properties 편집

  • 경로: ../config/server.properties

  • 추가

1
2
3
4
listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

3. Server 인증정보 conf 파일 설정

에디터로 파일을 열고 JAAS 구성 파일 위치를 JVM 매개변수로 설정을 한다.

1) kafka-server-start 설정

  • Linux: ../bin/kafka-server-start.sh
1
export KAFKA_OPTS=-Djava.security.auth.login.config=../config/kafka_server_jaas.conf
  • Windows: ../bin/windows/kafka-server-start.bat
1
set KAFKA_OPTS=-Djava.security.auth.login.config=../../config/kafka_server_jaas.conf

4. Zookeeper 및 Kafka 실행

1) Zookeeper 실행

  • Linux
1
./zookeeper-server-start.sh ../config/zookeeper.properties
  • Windows
1
zookeeper-server-start.bat ../../config/zookeeper.properties

2) Kafka 실행

  • Linux
1
./kafka-server-start.sh ../config/server.properties
  • Windows
1
kafka-server-start.bat ../../config/server.properties

6. Producer 인증정보 conf 파일 설정

1) producer_jaas.conf 생성

  • 생성 위치: ../config/producer_jaas.conf
1
2
3
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="alice-secret";

7. Consumer 인증정보 conf 파일 설정

1) consumer_jaas.conf 생성

  • 생성 위치: ../config/consumer_jaas.conf
1
2
3
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="alice-secret";

8. Producer 및 Consumer 실행

1) Producer Console 실행

  • Linux
1
./kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test --producer.config=../config/producer_jaas.conf
  • Windows
1
kafka-console-producer.bat --broker-list localhost:9092 --topic topic-test --producer.config=../../config/producer_jaas.conf

2) Consumer Console 실행

  • Linux
1
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-test --group local-group --consumer.config=../config/consumer_jaas.conf
  • Windows
1
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topic-test --group local-group --consumer.config=../../config/consumer_jaas.conf

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.