-
Apache Kafka 서버 보안 (security)컴퓨터/Kafka 2020. 12. 30. 23:24728x90반응형
Kafka
1. 카프카 보안
기본 설정(PLAINTEXT)으로는 이론상,
연결된 모든 유저 및 애플리케이션이 원하는 토픽에 원하는 메시지를 전달할 수가 있다.
카프카 보안을 높일 수 있는 방법은 크게 아래 3가지가 있다.
-
데이터 전송 중 SSL / TLS을 통한 암호화
-
SSL / SASL을 통한 인증(Authentication)
-
ACLs을 통한 인증(Authentication)
2. SSL / TLS
이 방법은 프로듀서에서 카프카, 카프카에서 컨슈머로 가는 데이터를 암호화할 수 있게 해 준다.
HTTPS에서 "S"가 이와 같다. (카프카에선 주로 port 9093 SSL을 통해 이용함)
아래는 Kafka 서버 SSL 설정 예제이다.
bootstrap.servers=kafka.example.com:9093 security.protocol=SSL ssl.truststore.location=/etc/security/tls/kafka.client.truststore.jks ssl.truststore.password=test1234 ssl.keystore.location=/etc/security/tls/kafka.client.keystore.jks ssl.keystore.password=test1234 ssl.key.password=test1234
3. SSL 인증
로그인(아이디/암호)처럼 인증된 Producer/Consumer에게만 카프카 서버에 접근할 수 있도록 하는 방법이다.
(SSL 인증서를 이용함)
카프카 클라이언트 -> 카프카 서버 (인증서 확인) -> 클라이언트 허용 혹은 의심
4. SASL 인증
SASL에는 아래와 같은 방식이 있다.
-
PLAINTEXT: 클라이언트 아이디/비밀번호를 통한 인증 (보안 - 약 / 셋업 - 하)
-
Kerberos: 셋업이 매우 어렵지만, 보안이 매우 강하다. Azure Active Directory 같은 것 (@커버로스 위키)
-
SCRAM: PLAIN처럼 아이디/비밀번호를 통한 인증 (보안 - 강 / 셋업 난이도 - 중)
예를 들면 아래 카프카 서버를 구축해주는 CloudKarafka는 SASL_SSL 프로토콜을 이용해
유저 이름과 비밀번호를 이용해서 Producer/Consumer를 사용해야 한다.
도움
Confluent 카프카 보안 문서: @링크
Apache Kafka 보안 문서: @링크
728x90'컴퓨터 > Kafka' 카테고리의 다른 글
Apache Kafka Connect 사용해보기 (0) 2021.01.07 Python Kafka: Cloud Karafka 이용하기 (0) 2020.12.24 Python Kafka: Avro 사용하기 (2) 2020.12.23 -