第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
リソースを設定します。この例では、mTLS 認証と、ACL を使用した単純な認可を指定します。
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>
ユーザーの Ready ステータスが
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 True
READY
出力がTrue
を示す場合、ユーザーの作成は成功です。READY
列が空白のままの場合は、リソース YAML またはユーザー Operator ログからステータスの詳細を取得します。メッセージは、現在のステータスの理由に関する詳細を提供します。
oc get kafkausers my-user-2 -o yaml
NotReady
ステータスのユーザーの詳細# ... 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: simple
Kafka 設定を更新した後、ステータスはユーザーの準備ができていることを示します。
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 yaml
READY
ステータスのユーザーの詳細# ... status: conditions: - lastTransitionTime: "2022-06-10T10:33:40.166846Z" status: "True" type: Ready