kafka 2.8.2버전입니다.

배경은 이러합니다.

 

1. kafka cluster는 내부망에 위치합니다.

2. kafka 서버에 데이터를 전송하는 client는 외부망에 위치합니다.

3. 정책 상 외부에서 내부로 데이터를 전송할 시, ssl 인증이 필수였습니다.

4. 이에 kafka cluster 내부망끼리의 통신은 디폴틀값인 PLAINTEXT, 외부 client에서 데이터를 받을 때는 SSL을 사용하기로 하였습니다.

5. kafka 서버단에서 포트를 2개 열어 각 인증체계를 부여하였습니다.

6. PLAINTEXT -> 9092포트, SSL -> 9093포트입니다.

 

vi ${KAFKA_HOME}/config/server.properties

listeners=PLAINTEXT://:9092, SSL://:9093

# 디폴트값
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

advertised.listeners=PLAINTEXT://[각 KAFKA 브로커 호스트명]:9092, SSL://[각 KAFKA 브로커 호스트명]:9093

# 추가
ssl.keystore.location=[keystore.jks 위치]
ssl.keystore.password=[keystore 비밀번호]
ssl.key.password=[key 비밀번호]
ssl.truststore.location=[truststore.jks 위치]
ssl.truststore.password=[truststore 비밀번호]
# 클라이언트 단 인증 방식
ssl.client.auth=required
# Kafka 서버 브로커들끼리 통신할 방법
security.inter.broker.protocol=PLAINTEXT
# 빈 값으로 추가
ssl.endpoint.identification.algorithm=

# 수정 후 kafka 서버 재실행필요

 

이후 클라이언트 설정은 아래 링크를 참조해주시기 바랍니다.

https://developer-woong.tistory.com/79

 

kafka) kafka SSL설정

kafka 2.8.2버전 기준이며, keystore, truststore jks파일이 존재함을 가정합니다. 서버단 설정: vi ${KAFKA_HOME}/config/server.properties listeners=SSL://:9092 # 디폴트값 listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL

developer-woong.tistory.com

 

 

 

 

 

 

반응형

+ Recent posts