기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Apache Kafka ACL
Apache Kafka에는 플러그 가능한 권한 부여자가 있으며 권한 부여자 구현이 함께 제공됩니다. out-of-box Amazon MSK는 브로커의 server.properties
파일에서 이 권한 부여자를 활성화합니다.
Apache Kafka ACL의 형식은 “주 P는 RP와 일치하는 모든 리소스 R에 대한 호스트 H의 작업 [허용/거부] 입니다.” ResourcePattern RP가 특정 리소스 R과 일치하지 않으면 R에 연결된 ACL이 없으므로 수퍼유저 이외의 누구도 R에 액세스할 수 없습니다. 이 Apache Kafka 동작을 변경하려면 속성 allow.everyone.if.no.acl.found
를 true로 설정합니다. Amazon MSK는 이 속성을 기본적으로 true로 설정합니다. 즉, Amazon MSK 클러스터를 사용할 때 리소스에 ACL을 명시적으로 설정하지 않으면 모든 보안 주체가 이 리소스에 액세스할 수 있습니다. 리소스에 대해 ACL을 활성화하면 권한이 부여된 보안 주체만 ACL에 액세스할 수 있습니다. TLS 상호 인증을 사용하여 주제에 대한 액세스를 제한하고 클라이언트에 권한을 부여하려면 Apache Kafka 권한 부여자 CLI를 사용하여 ACL을 추가합니다. ACL 추가, 제거 및 나열 방법에 대한 자세한 내용은 Kafka 인증 명령줄 인터페이스
클라이언트 외에도 브로커가 기본 파티션에서 메시지를 복제할 수 있도록 모든 브로커에게도 주제에 대한 액세스 권한을 부여해야 합니다. 브로커가 주제에 액세스할 수 없는 경우 주제에 대한 복제가 실패합니다.
주제에 대한 읽기 및 쓰기 액세스 권한을 추가하거나 제거하려면
-
브로커가 ACL이 있는 모든 주제에서 읽을 수 있도록 ACL 테이블에 브로커를 추가합니다. 브로커에게 주제에 대한 읽기 액세스 권한을 부여하려면 MSK 클러스터와 통신할 수 있는 클라이언트 머신에서 다음 명령을 실행합니다.
Distinguished-Name
을 해당 클러스터의 부트스트랩 브로커의 DNS로 바꾼 다음 이 고유 이름의 첫 번째 마침표 앞에 있는 문자열을 별표(*
)로 바꿉니다. 예를 들어, 클러스터의 부트스트랩 브로커 중 하나에 DNSb-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com
이 있는 경우 다음 명령의Distinguished-Name
을*.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com
으로 바꿉니다. 부트스트랩 브로커를 가져오는 방법에 대한 자세한 내용은 Amazon MSK 클러스터를 위한 부트스트랩 브로커 가져오기 단원을 참조하십시오.<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
-
주제에 대한 읽기 액세스 권한을 부여하려면 클라이언트 머신에서 다음 명령을 실행합니다. 상호 TLS 인증을 사용하는 경우 프라이빗 키를 생성할 때 사용한 것과 동일한
Distinguished-Name
을 사용합니다.<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
읽기 액세스 권한을 제거하려면
--add
를--remove
로 바꾸어 같은 명령을 실행하면 됩니다. -
주제에 대한 쓰기 액세스 권한을 부여하려면 클라이언트 머신에서 다음 명령을 실행합니다. 상호 TLS 인증을 사용하는 경우 프라이빗 키를 생성할 때 사용한 것과 동일한
Distinguished-Name
을 사용합니다.<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Write --topicTopic-Name
쓰기 액세스 권한을 제거하려면
--add
를--remove
로 바꾸어 같은 명령을 실행하면 됩니다.