피드로 돌아가기
Dev.toSecurity
원문 읽기
Strimzi Operator 기반 Kafka mTLS 자동화 및 인증 구조 설계
Strimzi: Create a simple Mutual TLS (mTLS) authentication
AI 요약
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 프로토콜 설정 확인