Kafka
Kafka ACL(인가)
marcel
2025. 4. 10. 13:31
**ACL (Access Control List)**은 Kafka에서 인증된 사용자의 리소스 접근 권한을 제어하는 방식입니다.
Kafka는 SASL 인증을 기반으로 사용자 신원을 확인한 뒤, ACL을 통해 다음과 같은 리소스 단위로 접근 권한을 설정합니다:
- Topic: 메시지 읽기(Read), 쓰기(Write), 생성(Create) 등
- Consumer Group: 오프셋 조회(Read), 그룹 메타데이터 접근(Describe)
- Cluster: 클러스터 생성/변경/조회 등의 관리자 권한
ACL은 Kafka에 기본 내장된 기능이며, kafka-acls.sh CLI를 통해 관리할 수 있습니다.
- 고객사의 요구 사항 중 보안, 사용자 관리 측면에서 Sasl 및 ACL 에 대한 질의가 많이 있습니다.
리소스권한 종류설명
Topic | Read | Consumer로 읽기 허용 |
Topic | Write | Producer로 쓰기 허용 |
Group | Read | Consumer Group으로 오프셋 관리 등 허용 |
Group | Describe | 그룹 정보 조회 가능 |
Cluster | Create / Alter / Describe | Admin 관련 권한들 |
- Example
# 토픽에 대한 Read 권한 부여
kafka-acls.sh \
--bootstrap-server <broker> \
--add \
--allow-principal "User:user_readonly" \
--operation Read \
--topic my-topic
# Consumer Group에 대한 Read 권한 부여 (필요한 경우)
kafka-acls.sh \
--bootstrap-server <broker> \
--add \
--allow-principal "User:user_readonly" \
--operation Read \
--group my-consumer-group
|