Kafka Connect,明文形式的 JDBC 连接器密码。如何避免?

M. *_*ris 2 jdbc apache-kafka apache-kafka-connect

我有一个正在使用的 jdbc 源连接器,并且我一直在使用 Postman 来测试和设置它。db 连接的密码是明文,只要我是唯一看到它的人就可以了。

    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url": "jdbc:db2://db2server.mycompany.com:4461/myDB",
        "connection.user: "dbUser",
        "connection.password": "DBPASSinClearText!",
        "dialect.name": "Db2DatabaseDialect",
        "mode": "timestamp",
        "query": "select fname, lname, custId, custRegion, lastUpdate from CustomerMaster",
        "timestamp.column.name": "lastUpdate",
        "table.types": "TABLE",
        "topic.prefix": "master.customer"
    }
}
Run Code Online (Sandbox Code Playgroud)

在生产中,部署团队是设置配置的人。有没有办法对此进行加密,这样我就不必与该团队共享明文密码?

Rob*_*att 5

是的,您可以使用外部化凭据。这是通过KIP-297在 Apache Kafka 2.0 中添加的。

您可以使用外部凭据提供程序(一个基本的例子是一个平面文件),然后代替这个:

"connection.password": "DBPASSinClearText!",
Run Code Online (Sandbox Code Playgroud)

你会有类似的东西:

"connection.password": "${file:/data/foo_credentials.properties:FOO_PASSWORD}",
Run Code Online (Sandbox Code Playgroud)

这是仅使用平面文件执行此操作的示例,并在此处的文档中阅读有关完整功能的更多信息