繁体   English   中英

想要一些如何使用 kafkaUser 的实际示例

[英]Want some practical example how to use kafkaUser

我正在使用带有 strimzi 运算符的 Kafka。 我不知道如何使用 KafkaUser 任何人都可以向我建议我应该在哪里学习它的实际实现。 我刚刚创建了一个 Kafka 用户和 KafkaTopic 现在我完全不知道该怎么做。 这是我的 KafkaUSer yml 代码:

apiVersion: kafka.strimzi.io/v1beta1
kind: KafkaUser
metadata:
  name: my-user
  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
        operation: Read
        host: "*"
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operation: Describe
        host: "*"
      - resource:
          type: group
          name: my-group
          patternType: literal
        operation: Read
        host: "*"
      # Example Producer Acls for topic my-topic
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operation: Write
        host: "*"
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operation: Create
        host: "*"
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operation: Describe
        host: "*"

这是我的 KafkaTopic yml 文件代码:

apiVersion: kafka.strimzi.io/v1beta1
kind: KafkaTopic
metadata:
  name: my-topic
  labels:
    strimzi.io/cluster: my-cluster
spec:
  partitions: 1
  replicas: 1
  config:
    retention.ms: 7200000
    segment.bytes: 1073741824

如果您对用户启用了tls身份验证,我希望在您的Kafka自定义资源中您也启用了身份验证。 当使用此身份验证类型创建KafkaUser ,会使用用户私钥和证书生成相应的 Secret,以便与代理进行KafkaUser TLS 身份验证。 您必须从 Secret 中提取密钥和证书,并在您的客户端应用程序中配置您的密钥库(这取决于您使用的语言。如果是 Java,您可以直接从带有相应密码的 P12 格式的 Secret 中提取密钥库)。 如果它是 Java,您可以参考官方 Kafka 文档,在从 Secrets 中提取时设置密钥库和信任库: https : //kafka.apache.org/documentation/#security_configclients

启用双向 TLS 身份验证,这意味着您还必须通过 TLS 连接到代理(您已在Kafka资源中启用它),因此您必须从集群 CA Secret 中提取证书并将其导入您的信任库。 那时客户端将能够连接、进行身份验证并且您描述的 ACL 将被应用。

更多信息在官方文档中:

关于用户认证https://strimzi.io/docs/operators/master/using.html#con-securing-client-authentication-str

关于在 Kubernetes 上运行的客户端连接到集群https://strimzi.io/docs/operators/master/using.html#configuring-internal-clients-to-trust-cluster-ca-str

关于在 Kubernetes 之外运行的客户端连接到集群https://strimzi.io/docs/operators/master/using.html#configuring-external-clients-to-trust-cluster-ca-str

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM