17.4.3. 일반적인 Kafka 작업에 대한 권한
다음 예제에서는 Kafka에서 일반적인 작업을 수행하는 데 필요한 사용자 권한을 보여줍니다.
주제 생성
주제를 만들려면 특정 주제 또는 Cluster:kafka-cluster 에 대한 Create 권한이 필요합니다.
bin/kafka-topics.sh --create --topic my-topic \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
주제 목록
사용자에게 지정된 항목에 대한 설명 권한이 있는 경우 항목이 나열됩니다.
bin/kafka-topics.sh --list \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
주제 세부 정보 표시
주제의 세부 정보를 표시하려면 주제에 대해 설명하고 DescribeConfigs 권한이 필요합니다.
bin/kafka-topics.sh --describe --topic my-topic \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
항목에 메시지 생성
항목에 대한 메시지를 생성하려면 항목에 대해 설명 및 쓰기 권한이 필요합니다.
주제가 아직 생성되지 않았으며 자동 생성 항목이 활성화되어 있는 경우 주제를 만들 수 있는 권한이 필요합니다.
bin/kafka-console-producer.sh --topic my-topic \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --producer.config=/tmp/config.properties
주제의 메시지 사용
주제의 메시지를 사용하려면 주제에서 설명 및 읽기 권한이 필요합니다. 주제에서 사용하는 것은 일반적으로 소비자 그룹에 소비자 오프셋을 저장하는 데 의존하며, 소비자 그룹에 대한 추가 설명 및 읽기 권한이 필요합니다.
일치하려면 두 개의 리소스가 필요합니다. 예를 들면 다음과 같습니다.
Topic:my-topic
Group:my-group-*
bin/kafka-console-consumer.sh --topic my-topic --group my-group-1 --from-beginning \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --consumer.config /tmp/config.properties
idempotent 생산자를 사용하여 주제로 메시지 생성
주제를 생성하는 권한뿐만 아니라 Cluster:kafka-cluster 리소스에 추가 IdempotentWrite 권한이 필요합니다.
일치하려면 두 개의 리소스가 필요합니다. 예를 들면 다음과 같습니다.
Topic:my-topic
Cluster:kafka-cluster
bin/kafka-console-producer.sh --topic my-topic \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --producer.config=/tmp/config.properties --producer-property enable.idempotence=true --request-required-acks -1
소비자 그룹 나열
소비자 그룹을 나열할 때 사용자에게 권한이 있는 그룹 만 반환됩니다. 또는 사용자에게 Cluster:kafka-cluster 에 대한 Describe 권한이 있는 경우 모든 소비자 그룹이 반환됩니다.
bin/kafka-consumer-groups.sh --list \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
소비자 그룹 세부 정보 표시
소비자 그룹의 세부 정보를 표시하려면 그룹 및 그룹과 연결된 항목에 대한 설명이 필요합니다.
bin/kafka-consumer-groups.sh --describe --group my-group-1 \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
주제 구성 변경
주제의 구성을 변경하려면 설명 및 대체 권한이 필요합니다.
bin/kafka-topics.sh --alter --topic my-topic --partitions 2 \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
Kafka 브로커 구성 표시
kafka-configs.sh 를 사용하여 브로커의 구성을 가져오려면 Cluster:kafka-cluster 에 DescribeConfigs 권한이 필요합니다.
bin/kafka-configs.sh --entity-type brokers --entity-name 0 --describe --all \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
Kafka 브로커 구성 변경
Kafka 브로커 구성을 변경하려면 Cluster:kafka-cluster 에 DescribeConfig 및 AlterConfigs 권한이 필요합니다.
bin/kafka-configs --entity-type brokers --entity-name 0 --alter --add-config log.cleaner.threads=2 \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
주제 삭제
주제를 삭제하려면 설명 및 삭제 권한이 해당 항목에 필요합니다.
bin/kafka-topics.sh --delete --topic my-topic \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config=/tmp/config.properties
지도 파티션 선택
주제 파티션에 대해 리더 선택을 실행하려면 Cluster:kafka-cluster 에 Alter 권한이 필요합니다.
bin/kafka-leader-election.sh --topic my-topic --partition 0 --election-type PREFERRED /
--bootstrap-server my-cluster-kafka-bootstrap:9092 --admin.config /tmp/config.properties
파티션 재할당
파티션 재할당 파일을 생성하려면 관련 항목에 대한 권한이 필요합니다.
bin/kafka-reassign-partitions.sh --topics-to-move-json-file /tmp/topics-to-move.json --broker-list "0,1" --generate \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config /tmp/config.properties > /tmp/partition-reassignment.json
파티션 재할당을 실행하려면 Cluster:kafka-cluster 에 대해 설명합니다. 또한 관련 항목에 대한 사용 권한이 필요합니다. Describe permissions are required on the topics involved.
bin/kafka-reassign-partitions.sh --reassignment-json-file /tmp/partition-reassignment.json --execute \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config /tmp/config.properties
파티션 재할당을 확인하려면 Cluster:kafka-cluster 및 관련된 각 항목에 대해 파티션 재할당, AlterConfigs 권한이 필요합니다.
bin/kafka-reassign-partitions.sh --reassignment-json-file /tmp/partition-reassignment.json --verify \
--bootstrap-server my-cluster-kafka-bootstrap:9092 --command-config /tmp/config.properties