第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 とともにデプロイされます)。

手順

  1. 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: "*"

  2. OpenShift で KafkaUser リソースを作成します。

    oc apply -f <user_config_file>
  3. ユーザーの 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 を示す場合、ユーザーの作成は成功です。

  4. 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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.