第 24 章 KafkaAuthorizationCustom 模式参考
使用于: KafkaClusterSpec
KafkaAuthorizationCustom 模式属性的完整列表
将 Kafka 自定义资源配置为使用自定义授权器并定义访问控制列表(ACL)。
ACL 允许您定义哪些用户有权访问细致级别的资源。配置 Kafka 自定义资源,以指定实现 org.apache.kafka.server.authorizer.Authorizer 接口的授权器类来支持自定义 ACL。将 authorization 部分中的 type 属性设置为 custom,并配置超级用户列表。在不查询 ACL 规则的情况下,始终允许超级用户。添加额外的配置,以使用 Kafka.spec.kafka.config 初始化自定义授权器。
自定义授权 配置示例
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
namespace: myproject
spec:
kafka:
# ...
authorization:
type: custom
authorizerClass: io.mycompany.CustomAuthorizer
superUsers:
- CN=user-1
- user-2
- CN=user-3
# ...
config:
authorization.custom.property1=value1
authorization.custom.property2=value2
# ...
Kafka.spec.kafka 中的 config 配置属性中的 super.user 配置选项会被忽略。改为指定 authorization 属性中的超级用户。
24.1. 将自定义授权器 JAR 文件添加到容器镜像 复制链接链接已复制到粘贴板!
除了 Kafka 自定义资源配置外,包含自定义授权器类及其依赖项的 JAR 文件还必须在 Kafka 代理的类路径上可用。
您可以从 source-code 为 Apache Kafka 构建流来添加它们。Apache Kafka 构建过程的 Streams 提供了将自定义第三方库添加到生成的 Kafka 代理容器镜像的机制,方法是将自定义第三方库作为依赖项添加到 docker-images/artifacts/kafka-thirdparty-libs 目录下的 pom.xml 文件中。目录包含不同 Kafka 版本的不同文件夹。选择适当的文件夹。在修改 pom.xml 文件前,第三方库必须在 Maven 存储库中可用,并且 Maven 存储库必须可以被 Apache Kafka 构建过程访问。
另外,您可以将 JAR 添加到 Apache Kafka 容器镜像的现有 Streams 中:
FROM registry.redhat.io/amq-streams/kafka-38-rhel9:2.8.0
USER root:root
COPY ./my-authorizer/ /opt/kafka/libs/
USER 1001