패스잇
백엔드 개발 · 심화

Kafka 클러스터에 대한 End-to-End 보안(인증, 인가, 암호화)을 구현하기 위한 아키텍처를 설계하고, 각 보안 요소(SSL/TLS, SASL, ACL)의 역할과 설정 방법을 설명하시오. 또한, 보안 적용 시 성능에 미치는 영향과 최적화 방안을 논하시오.

힌트 · SSL/TLS는 통신 암호화, SASL은 인증, ACL은 인가를 담당하며, 성능 오버헤드를 최소화하기 위한 하드웨어 가속이나 인증 메커니즘 선택이 중요합니다.

SSL/TLSSASL/KerberosACLKRaftJMX/Prometheus

모범답안

Kafka 클러스터의 End-to-End 보안은 SSL/TLS, SASL, ACL을 조합하여 구현합니다.

SSL/TLS는 클라이언트와 브로커 간, 브로커 간 통신을 암호화하여 데이터 기밀성과 무결성을 보장합니다. 각 브로커와 클라이언트는 고유한 SSL 인증서를 발급받아 사용하며, server.properties에서 ssl.keystore.location, ssl.truststore.location 등을 설정합니다.

SASL은 사용자 인증을 담당합니다. Kerberos를 주로 사용하며, 클라이언트가 Kerberos 티켓을 제시하면 브로커가 이를 검증합니다. server.properties의 sasl.enabled, sasl.mechanism.inter.broker.protocol, sasl.mechanism.external 등을 설정합니다.

ACL은 인증된 사용자의 토픽, 그룹 등에 대한 접근 권한을 제어합니다. kafka-acls.sh 스크립트를 사용하여 특정 사용자에게 특정 토픽에 대한 읽기/쓰기 권한을 부여합니다.

보안 적용 시 SSL/TLS의 암호화 및 복호화, SASL의 인증 과정에서 CPU 오버헤드가 발생할 수 있습니다. 성능 최적화를 위해 하드웨어 가속 SSL/TLS 지원, Kerberos 대신 경량 SASL 메커니즘(SCRAM 등) 고려, 그리고 KRaft 모드에서 ACL 관리 효율성 증대를 고려할 수 있습니다. JMX나 Prometheus를 통해 보안 관련 지표를 모니터링하여 병목 지점을 파악하고 최적화합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 메시지 큐 (Kafka) 면접 질문

← 메시지 큐 (Kafka) 면접 질문 전체 보기