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