본문으로 건너뛰기

ACL

ACL(Access Control List, 접근 제어 목록)이란, 시스템에서 접근 권한을 제어하는데 사용되는 허용 목록을 뜻해요. Kafka에서는 토픽이나 클러스터, 컨슈머 그룹과 같은 리소스에 대해 ACL을 적용하여, 특정 권한을 가진 허용된 클라이언트만 해당 리소스에 접근할 수 있도록 제한할 수 있어요.

ACL 설정이 왜 필요할까요?

Kafka에서 ACL 설정은 보안적인 측면에서 매우 중요해요. 만약, ACL이 비활성화 되어 있는 경우, 모든 사용자가 리소스에 접근할 수 있어서 보안 위험이 증가해요. 또한, ACL이 활성화된 상태에서 특정 리소스에 대한 권한을 지정하지 않았을 경우, 해당 리소스는 슈퍼 사용자만 접근할 수 있어서 일반 사용자는 접근할 수 없게돼요.

이처럼, ACL을 정확하게 설정하지 않으면 Kafka의 리소스들을 정상적으로 관리할 수 없기 때문에 주의해야해요.

Felice는 인증과 인가가 구성된 클러스터에 대한 ACL 관리 기능을 제공해요. 또한, 클러스터 보안 설정에 SCRAM 매커니즘이 적용되어 있는 경우, SCRAM 자격 증명과 통합하여 관리할 수 있어요.

acl-list

새로운 권한을 추가하려면, 접근 제어 목록 화면에서 [권한 추가] 버튼을 눌러 권한 추가 모달을 열어주세요.

acl-header-add

권한 추가

새로 추가할 권한에 대한 정보를 입력해주세요. 먼저, 사용자 이름과 호스트 정보를 입력하고, 접근을 제어하고자 하는 클라이언트 유형을 선택하세요. 이후, 리소스의 허용 또는 거부 여부와 리소스를 선택하세요.

정보를 모두 기입했다면 [추가] 버튼을 눌러 권한을 추가해주세요. 추가가 완료되면, 입력한 정보에 맞게 여러개의 ACL 요소가 추가돼요.

acl-create

구분설명
⓵ 사용자 이름접근 권한을 부여할 사용자 명
⓶ 호스트접근을 허용 또는 거부할 호스트 지정 (기본값: *)
⓷ 프리셋 선택프리셋에 따라 리소스 권한을 적절하게 설정
- Producer:프로듀서 클라이언트에 적합한 리소스 권한을 설정
- Consumer:컨슈머 클라이언트에 적합한 리소스 권한을 설정
- Custom: 사용자 정의 리소스 권한을 설정
⓸ 접근 권한 유형리소스에 대한 접근을 허용 또는 거부
- ALLOW: 사용자가 지정한 리소스에 대한 접근을 허용
- DENY: 사용자가 지정한 리소스에 대한 접근을 거부
⓹ 리소스 설정접근 권한을 설정할 리소스 지정
- Topic: 특정 토픽에 대한 권한 설정
- Group: 특정 컨슈머 그룹에 대한 권한 설정
- TransactionalID: 특정 트랜잭션 ID에 대한 권한 설정
리소스 선택 시, match 옵션

리소스 이름을 어떻게 매칭할지 결정하는 방법을 지정해요. 다음 옵션들이 제공돼요.

  • Prefixed: 리소스 이름이 지정한 접두어와 일치하는지 검사해요. 예를 들어, 접두어가 log-이면 log-topic1, log-topic2와 같은 이름의 리소스가 모두 매칭돼요.
  • Literal: 리소스 이름이 정확히 입력한 이름과 일치하는지 검사해요. 예를 들어, topic1이라고 입력하면 오직 topic1만 매칭돼요.
리소스 선택 시, operation 옵션

Operation은 각 리소스에 대해 수행할 수 있는 액션들이에요. 각 리소스(Topic, Group, TransactionalID) 마다 다른 액션들이 제공돼요. 각 리소스 별 액션은 ACL Operations 문서를 참고해주세요.

권한 삭제

목록에서 삭제를 원하는 권한의 행의 우측에 위치한 [휴지통 버튼] 을 누르거나, 체크 박스로 여러개의 권한을 선택하고 [삭제 버튼] 을 누르면 선택한 권한을 삭제할 수 있어요. 권한 삭제에 대한 경고 문구와 삭제할 권한의 정보를 확인한 뒤, [삭제] 버튼을 누르면 권한을 삭제할 수 있어요.

acl-delete