10장. User Operator를 사용하여 Kafka 사용자 관리
KafkaUser 리소스를 사용하여 사용자를 생성, 수정 또는 삭제할 때 User Operator는 이러한 변경 사항이 Kafka 클러스터에 반영되도록 합니다.
KafkaUser 리소스에 대한 자세한 내용은 KafkaUser 스키마 참조를 참조하십시오.
10.1. Kafka 사용자 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaUser 리소스의 속성을 사용하여 Kafka 사용자를 구성합니다.
oc apply 를 사용하여 사용자를 생성하거나 수정하고 oc delete 를 사용하여 기존 사용자를 삭제할 수 있습니다.
예를 들면 다음과 같습니다.
-
oc apply -f <user_config_file> -
oc delete KafkaUser <user_name>
사용자는 Kafka 클라이언트를 나타냅니다. Kafka 사용자를 구성할 때 클라이언트가 Kafka에 액세스하기 위해 필요한 사용자 인증 및 권한 부여 메커니즘을 활성화합니다. 사용된 메커니즘은 동등한 Kafka 구성과 일치해야 합니다. Kafka 및 KafkaUser 리소스를 사용하여 Kafka 브로커에 대한 액세스를 보호하는 방법에 대한 자세한 내용은 Kafka 브로커에 대한 액세스 보안을 참조하십시오.
사전 요구 사항
- mTLS 인증 및 TLS 암호화를 사용하는 Kafka 브로커 리스너로 구성된 실행 중인 Kafka 클러스터입니다.
- 실행 중인 User Operator(일반적으로 Entity Operator를 사용하여 배포)
절차
KafkaUser리소스를 구성합니다.이 예제에서는 ACL을 사용하여 mTLS 인증 및 간단한 인증을 지정합니다.
Kafka 사용자 구성의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaUser metadata: name: my-user-1 labels: strimzi.io/cluster: my-cluster spec: authentication: type: tls authorization: type: simple acls: # Example consumer Acls for topic my-topic using consumer group my-group - resource: type: topic name: my-topic patternType: literal operations: - Describe - Read host: "*" - resource: type: group name: my-group patternType: literal operations: - Read host: "*" # Example Producer Acls for topic my-topic - resource: type: topic name: my-topic patternType: literal operations: - Create - Describe - Write host: "*"OpenShift에서
KafkaUser리소스를 생성합니다.oc apply -f <user_config_file>사용자의 준비 상태가
True로 변경될 때까지 기다립니다.oc get kafkausers -o wide -w -n <namespace>Kafka 사용자 상태
NAME CLUSTER AUTHENTICATION AUTHORIZATION READY my-user-1 my-cluster tls simple True my-user-2 my-cluster tls simple my-user-3 my-cluster tls simple TrueREADY출력에True가 표시되면 사용자 생성이 성공합니다.READY열이 비어 있으면 리소스 YAML 또는 User Operator 로그에서 상태에 대한 자세한 정보를 가져옵니다.메시지는 현재 상태의 이유에 대한 세부 정보를 제공합니다.
oc get kafkausers my-user-2 -o yamlNotReady상태인 사용자에 대한 세부 정보# ... status: conditions: - lastTransitionTime: "2022-06-10T10:07:37.238065Z" message: Simple authorization ACL rules are configured but not supported in the Kafka cluster configuration. reason: InvalidResourceException status: "True" type: NotReady이 예에서 사용자가 준비되지 않은 이유는
Kafka구성에서 간단한 인증이 활성화되지 않기 때문입니다.간단한 권한 부여를 위한 Kafka 구성
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... authorization: type: simpleKafka 구성을 업데이트한 후 상태가 사용자가 준비되었음을 표시합니다.
oc get kafkausers my-user-2 -o wide -w -n <namespace>사용자의 상태 업데이트
NAME CLUSTER AUTHENTICATION AUTHORIZATION READY my-user-2 my-cluster tls simple True세부 정보를 가져오면 메시지가 표시되지 않습니다.
oc get kafkausers my-user-2 -o yamlREADY상태인 사용자에 대한 세부 정보# ... status: conditions: - lastTransitionTime: "2022-06-10T10:33:40.166846Z" status: "True" type: Ready