【问题标题】:Secrets management during kafka-connector startupkafka-connector 启动期间的秘密管理
【发布时间】:2020-10-05 09:43:10
【问题描述】:

我使用 Kafka 连接器作为源连接器。该文档提供了一种使用 REST API 管理 credentials in filesystem and apply them not as plain texts while creating connector 的方法。

如果 kafka-connector 已启动并正在运行,并且我们尝试创建一个新的连接器(实例),则此方法有效。

但是在 Kafka Connect 工作程序本身启动期间,如果我们需要在分布式属性文件中传递一些凭据,比如 SSL 证书密码。 使用 kafka-connect 或外部化 configProvider 提供的 FileConfigProvider 是否可能?

【问题讨论】:

    标签: apache-kafka-connect


    【解决方案1】:

    是的,您可以在连接器配置本身中使用与外部化配置相同的方法。

    1. 在worker配置中,定义配置提供者。对于文件提供程序,它看起来像这样:

      config.providers=file
      config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider
      
    2. 对于文件提供者,使用键/值配置项创建一个文件(例如/data/connect_external.properties):

      SSL_KEYSTORE_PASSWORD=nevergonnagiveyouup
      GROUP_ID=my_connect_group
      
    3. 在工作器配置中,指定您希望从配置提供程序获取的配置项,就像您对连接器本身所做的一样。例如,要使用上面示例文件中指定的配置覆盖组 ID 和 SSL 密钥存储密码:

      group.id=${file:/data/connect_external.properties:GROUP_ID}
      ssl.keystore.password=${file:/data/connect_external.properties:SSL_KEYSTORE_PASSWORD}
      

    当 Kafka Connect 工作器启动时,您会看到它使用了新值。由于 SSL 凭据已被屏蔽,您只会看到它是一个隐藏值。

        [2020-06-16 13:03:09,721] INFO DistributedConfig values:
        …
        group.id = my_connect_group
        ssl.keystore.password = [hidden]
    

    参考:https://rmoff.net/2019/05/24/putting-kafka-connect-passwords-in-a-separate-file-/-externalising-secrets/

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 2017-06-30
      • 2020-12-04
      • 2021-03-15
      • 2021-02-19
      • 1970-01-01
      • 2020-10-01
      • 2023-02-07
      相关资源
      最近更新 更多