피드로 돌아가기
Strimzi: Create a simple Mutual TLS (mTLS) authentication
Dev.toDev.to
Security

Strimzi Operator 기반 Kafka mTLS 자동화 및 인증 구조 설계

Strimzi: Create a simple Mutual TLS (mTLS) authentication

Ângelo Galvão2026년 6월 5일6intermediate

Context

Kubernetes 환경에서 Kafka 클러스터 운영 시 보안 강화를 위한 상호 인증 체계 필요성 대두. 수동 인증서 관리의 복잡성과 휴먼 에러로 인한 인증 실패 리스크를 해결하기 위한 자동화된 인증 관리 구조 요구.

Technical Solution

  • Strimzi Operator를 활용한 Kafka Custom Resource(CR) 정의로 TLS 암호화 및 mTLS 인증 기반의 Listener 설정
  • KafkaUser CR을 통한 인증서 생성 및 생명주기 자동화로 수동 생성 절차 제거
  • Kubernetes Secret으로 자동 배포된 CA 및 User 인증서를 PKCS12 포맷으로 추출하여 클라이언트 Truststore 및 Keystore 구성
  • ssl.client.auth=required 설정을 통한 서버-클라이언트 간 상호 신뢰 관계 강제
  • OpenShift Route 연동을 통해 클러스터 외부에서도 mTLS 보안 통신이 가능한 엔드포인트 확보
  • javax.net.debug=ssl 옵션을 통한 SSL Handshake 단계의 상세 트러블슈팅 체계 구축

1. Kafka CR의 listener 설정에서 tls: true 및 authentication.type: tls 설정 여부 확인

2. KafkaUser CR 생성 후 Secret에 ca.crt, user.crt, user.key, user.p12가 정상 생성되었는지 검증

3. 클라이언트 설정 파일에서 Truststore(CA 인증서)와 Keystore(사용자 인증서) 경로 및 패스워드 일치 여부 확인

4. 외부 접속 시 Bootstrap Route URL의 정합성 및 SSL 프로토콜 설정 확인

원문 읽기