第24章 KafkaAuthorizationCustom スキーマリファレンス
KafkaClusterSpec で使用
KafkaAuthorizationCustom スキーマプロパティーの全リスト
カスタム認証を使用し、アクセス制御リスト (ACL) を定義するように Kafka カスタムリソースを設定します。
ACL を使用すると、ユーザーがアクセスできるリソースを細かく定義できます。カスタム ACL をサポートするための org.apache.kafka.server.authorizer.Authorizer インターフェイスを実装するオーソライザークラスを指定するように Kafka カスタムリソースを設定します。authorization セクションの type プロパティーを値 custom に設定し、スーパーユーザーのリストを設定します。スーパーユーザーは、ACL ルールをクエリーしなくても常に許可されます。Kafka.spec.kafka.config を使用してカスタムオーソライザーを初期化するための設定をさらに追加します。
custom 認可設定の例
Kafka.spec.kafka の config プロパティーにある super.user 設定オプションは無視されます。この代わりに、authorization プロパティーでスーパーユーザーを指定します。
24.1. コンテナーイメージへのカスタムオーソライザー JAR ファイルの追加 リンクのコピーリンクがクリップボードにコピーされました!
Kafka カスタムリソース設定に加えて、カスタムオーソライザークラスとその依存関係を含む JAR ファイルが、Kafka ブローカーのクラスパスで使用可能である必要があります。
このファイルは、ソースコードから Streams for Apache Kafka をビルドすることで追加できます。Streams for Apache Kafka のビルドプロセスは、docker-images/artifacts/kafka-thirdparty-libs ディレクトリー配下の pom.xml ファイルに依存関係としてカスタムのサードパーティーライブラリーを追加することで、生成された Kafka ブローカーコンテナーイメージにカスタムのサードパーティーライブラリーを追加するメカニズムを備えています。ディレクトリーには、Kafka のバージョンごとに異なるフォルダーが含まれています。適切なフォルダーを選択します。pom.xml ファイルを変更する前に、サードパーティーライブラリーが Maven リポジトリーで使用可能である必要があります。また、その Maven リポジトリーが、Streams for Apache Kafka のビルドプロセスからアクセス可能である必要があります。
あるいは、既存の Streams for Apache Kafka コンテナーイメージに JAR を追加することもできます。
FROM registry.redhat.io/amq-streams/kafka-38-rhel9:2.8.0 USER root:root COPY ./my-authorizer/ /opt/kafka/libs/ USER 1001
FROM registry.redhat.io/amq-streams/kafka-38-rhel9:2.8.0
USER root:root
COPY ./my-authorizer/ /opt/kafka/libs/
USER 1001