【问题标题】:Where to store credentials and other secrets for Apache Flink SQL?在哪里存储 Apache Flink SQL 的凭据和其他机密?
【发布时间】:2021-10-27 10:10:38
【问题描述】:

我正在为 Flink SQL 做 PoC,我想知道处理凭据的正确方法是什么,例如在访问数据库和 Kafka 时。当我将它们包含在查询中时,它显然有效,但是在整个查询中散布凭据并不是很好。

我可以引用挂载文件中包含的秘密吗?或者至少是一个环境变量? 有 ${ENV} 之类的吗?

例如,我想提供其他地方的凭据:

CREATE CATALOG analytics WITH (
    'type'='jdbc',
    'base-url'='jdbc:postgresql://some-postgres:5432/',
    'default-database'='analytics',
    'username'='someuser',
    'password'='somepassword'
);

创建 Kafka 表时类似。

我想我可以包含一个可以做到这一点的 UDF,但在我走这条路之前,我想知道是否有明显的遗漏。

【问题讨论】:

    标签: apache-flink flink-sql


    【解决方案1】:

    您始终可以将您的凭据作为参数传递给您的程序。您可以创建一个属性文件来定义您想要的任何内容并将其传递给您的 Flink 程序。

    val username = ParameterTool.fromArgs(args).getRequired("username")

    【讨论】:

      【解决方案2】:

      凭据可以存储在flink-conf.yaml 中,并作为配置参数访问。请注意,任何包含这些字符串之一的配置设置

      "password", "secret", "fs.azure.account.key", "apikey"
      

      将在日志中隐藏其值。

      您还可以选择在 Flink SQL 支持的目录之一中定义表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        • 2021-02-20
        • 1970-01-01
        相关资源
        最近更新 更多