보안 개요
보안 개요
카프카(Kafka)를 실제 운영 환경에 올릴 때 가장 신경 쓰이는 부분 중 하나가 바로 보안이에요. 이 페이지에서는 카프카가 현재 지원하는 보안 기능이 어떤 것들이 있는지 큰 그림부터 잡아드릴게요. 인증, 암호화, 권한 부여(인가) 이렇게 세 갈래로 나눠서 설명하니, 요구사항에 맞게 필요한 것만 골라 쓰시면 돼요.
출처: 문서
본문
현재 카프카가 지원하는 보안 조치는 다음과 같아요.
-
브로커에 대한 클라이언트(프로듀서와 컨슈머), 다른 브로커, 그리고 도구의 연결 인증 — SSL 또는 SASL을 사용해요. 카프카는 다음과 같은 SASL 메커니즘을 지원해요:
- SASL/GSSAPI (Kerberos) — 0.9.0.0 버전부터
- SASL/PLAIN — 0.10.0.0 버전부터
- SASL/SCRAM-SHA-256 및 SASL/SCRAM-SHA-512 — 0.10.2.0 버전부터
- SASL/OAUTHBEARER — 2.0 버전부터
-
브로커와 클라이언트 사이, 브로커 사이, 또는 브로커와 도구 사이에 전송되는 데이터의 SSL 암호화 — (참고로 SSL을 활성화하면 성능 저하가 발생해요. 그 정도는 CPU 종류와 JVM 구현에 따라 달라져요.)
-
클라이언트의 읽기 / 쓰기 연산에 대한 권한 부여(인가)
-
플러그형 인가 — 외부 인가 서비스와 통합을 지원해요.
보안은 필수가 아니라는 점도 기억해두면 좋아요. 보안이 설정되지 않은 클러스터도 지원되고, 인증된 클라이언트와 인증되지 않은 클라이언트, 암호화된 클라이언트와 암호화되지 않은 클라이언트가 섞여 있는 구성도 가능해요. 아래 가이드들은 클라이언트와 브로커 양쪽에서 보안 기능을 어떻게 설정하고 사용하는지 설명해요.
더 알아보기
- 리스너 구성 — 보안을 적용하는 리스너를 설정하는 방법을 봐요.
- 운영 중인 클러스터에 보안 기능 적용 — 이미 돌아가고 있는 클러스터에 보안을 추가할 때 알아둘 점을 봐요.
- 카프카 스트림즈(Streams) 애플리케이션에서의 보안은 Streams 보안 문서를 참고해요.