일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- kibana
- SSL
- PostgreSQL
- PrestoDB
- MariaDB
- Kafka
- logstash
- Python
- kafka ui
- naverdevelopers
- fluentd
- elasticsearch
- MongoDB
- kafka connect
- elasticearch
- pyspark
- ui for kafka
- Today
- Total
Dev_duri
Kafka SASL/SCRAM (인증) 본문
개요
Kafka는 기본적으로 누구나 접근 가능한 구조를 가지고 있어, 실서비스 환경에서는 인증(Authentication), 권한 제어(Authorization), 데이터 암호화(Encryption)와 같은 보안 설정이 필수적이다. 이 중 **SASL(Simple Authentication and Security Layer)**은 Kafka에서 클라이언트의 신원을 확인하기 위한 인증 체계로 사용된다.
SASL은 다양한 인증 메커니즘을 Kafka 클러스터에 적용할 수 있도록 하는 프레임워크이다. 클라이언트가 Kafka에 접속할 때, SASL을 통해 사용자 인증을 수행할 수 있다.
Kafka에서 지원하는 대표적인 SASL 메커니즘은 다음과 같다:
메커니즘 | 설명 | 특징 |
PLAIN | 사용자 이름과 비밀번호를 평문으로 전송 | TLS와 함께 사용해야 안전 |
SCRAM-SHA-256 / SCRAM-SHA-512 | 비밀번호를 해시 방식으로 검증 | 보안성이 높고 Strimzi에서 기본 제공 |
GSSAPI | Kerberos 기반 인증 | 복잡하지만 사내 인증 시스템과 연동 가능 |
OAUTHBEARER | OAuth 2.0 토큰 기반 인증 | 외부 인증 시스템과의 통합에 적합 |
동작 방식
- 클라이언트는 Kafka 브로커에 접속을 시도한다.
- 브로커는 SASL 메커니즘에 따라 인증 정보를 요구한다.
- 클라이언트는 사용자 이름과 비밀번호(또는 해시)를 전송한다.
- 브로커는 미리 등록된 사용자 정보와 비교하여 인증 여부를 결정한다.
이 과정을 통해 Kafka는 등록된 사용자만 Kafka 클러스터에 접근할 수 있도록 제한할 수 있다.
SASL 인증을 Kafka 환경에 적용하기 위해서는 다음과 같은 설정이 필요하다:
1) Kafka 브로커 설정 (Strimzi 기준)
listeners:
- name: sasl
port: 9093
type: internal
tls: false
authentication:
type: scram-sha-512
|
2) KafkaUser 리소스 정의
apiVersion: kafka.s
trimzi.io/v1beta2
kind: KafkaUser
metadata:
name: admin
spec:
authentication:
type: scram-sha-512
|
Strimzi는 해당 KafkaUser에 대한 사용자 정보를 자동으로 Kubernetes Secret으로 생성한다.
3) 클라이언트 설정 예시 (Kafka UI, 앱 등)
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="비밀번호";
|
sasl.jaas.config는 Secret 또는 환경변수 등을 통해 안전하게 주입하는 것이 좋다.
마무리
Kafka에서 SASL은 인증을 위한 핵심 구성 요소이며, 특히 Strimzi 환경에서는 SCRAM-SHA-512 메커니즘을 활용해 손쉽게 안전한 사용자 인증 체계를 구성할 수 있다.
보안이 필요한 Kafka 환경에서는 반드시 SASL 기반 인증을 도입하고, 사용자 권한(ACL) 및 암호화 설정과 함께 종합적인 보안 구성을 적용하는 것이 바람직하다.
'Kafka' 카테고리의 다른 글
Kafka Zookeeper에서 KRaft로 (0) | 2025.04.10 |
---|---|
Kafka Connect 개념 (0) | 2025.04.10 |
Kafka Cluster 구조 (0) | 2025.04.10 |
Kafka Kraft Mode 구축 (0) | 2025.04.10 |
Kafka Perf Test (0) | 2025.03.14 |