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 根据所选的身份验证类型,创建代表客户端以及用于客户端身份验证的安全凭证的用户。
其他资源
有关以下模式的更多信息:
-
kafka,请参阅Kafka模式引用。 -
KafkaUser,请参阅KafkaUser架构引用。
4.3.1. 保护 Kafka 代理 复制链接链接已复制到粘贴板!
此流程演示了在运行 AMQ Streams 时保护 Kafka 代理的步骤。
为 Kafka 代理实施的安全性必须与为需要访问的客户端实施的安全性兼容。
-
Kafka.spec.kafka.listeners[*].authenticationmatchesKafkaUser.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-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 TLS 身份验证配置 Kafka 代理监听程序。
为每个 Kafka 代理 pod 创建一个服务。
创建一个服务作为连接到 Kafka 集群的 bootstrap 地址。
也使用与
Kafka资源相同的名称来创建用于验证 kafka 代理身份的集群 CA 证书。