4.3. 保护对 Kafka 代理的访问
要建立对 Kafka 代理的安全访问,您需要配置并应用:
Kafka
资源,用于:- 使用指定验证类型创建监听程序
- 为整个 Kafka 集群配置授权
-
通过监听程序安全访问 Kafka 代理的 Kafka
User
资源
配置 Kafka
资源以设置:
- 监听程序验证
- 限制对 Kafka 侦听器的访问的网络策略
- kafka 授权
- 超级用户对代理进行无限制访问
身份验证是为每个监听器独立配置的。始终为整个 Kafka 集群配置授权。
Cluster Operator 创建监听程序并设置集群和客户端证书颁发机构(CA)证书,以便在 Kafka 集群中启用身份验证。
您可以通过 安装您自己的证书来替换 Cluster Operator 生成的证书。您还可以将 监听程序配置为使用由外部证书颁发机构管理的 Kafka 侦听器证书。证书以 PKCS #12 格式(.p12)和 PEM(.crt)格式提供。
使用 KafkaUser
启用特定客户端用来访问 Kafka 的身份验证和授权机制。
配置 KafkaUser
资源以设置:
- 与启用的监听器验证匹配的身份验证
- 与启用的 Kafka 授权匹配的授权
- 用于控制客户端资源使用的配额
User Operator 根据所选的身份验证类型,创建代表客户端以及用于客户端身份验证的安全凭证的用户。
其它资源
有关以下模式的更多信息:
-
k
afka,请参阅Kafka
模式引用。 -
KafkaUser
,请参阅KafkaUser
架构引用。
4.3.1. 保护 Kafka 代理 复制链接链接已复制到粘贴板!
此流程演示了在运行 AMQ Streams 时保护 Kafka 代理的步骤。
为 Kafka 代理实施的安全性必须与为需要访问的客户端实施的安全性兼容。
-
Kafka.spec.kafka.listeners[*].authentication
matchesKafkaUser.spec.authentication
-
kafka.spec.kafka.authorization
与KafkaUser.spec.authorization
匹配
步骤演示了使用 TLS 身份验证的简单授权和监听器的配置。有关监听器配置的更多信息,请参阅 GenericKafkaListener
模式参考。
另外,您可以使用 SCRAM-SHA 或 OAuth 2.0 进行 监听程序身份验证,使用 OAuth 2.0 或 OPA 进行 Kafka 授权。
流程
配置
Kafka
资源。-
配置
授权
属性。 配置 listens
属性
,以创建具有身份验证的侦听器。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- 对 Kafka 拥有无限访问权限的用户主体列表。在使用 TLS 身份验证时,CN 是客户端证书的常用名称。
- 3
- 监听器身份验证机制可以为每个侦听器配置,并 指定为 mutual TLS、SCRAM-SHA-512 或基于令牌的 OAuth 2.0。
如果您要配置外部监听程序,其配置取决于所选的连接机制。
-
配置
创建或更新
Kafka
资源。oc apply -f KAFKA-CONFIG-FILE
oc apply -f KAFKA-CONFIG-FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 TLS 身份验证配置 Kafka 代理监听程序。
为每个 Kafka 代理 pod 创建一个服务。
创建一个服务作为连接到 Kafka 集群的 bootstrap 地址。
也使用与
Kafka
资源相同的名称来创建用于验证 kafka 代理身份的集群 CA 证书。