【问题标题】:Using Controller Service in ExecuteScript在 ExecuteScript 中使用控制器服务
【发布时间】:2019-08-15 10:22:50
【问题描述】:

我正在从事一个 Google Cloud 项目,我想使用 Jython 连接到自定义 API。我需要提供 Google 服务帐户凭据以验证自己的身份,但出于安全原因,我不希望这些信息被轻易访问。我可以创建一个有效的控制器服务,让我可以连接到 Google Cloud 服务。

我有可以执行身份验证的 Python 代码,但该代码旨在独立运行并从文件加载凭据。但是,这对我来说是不可能的,因为可能有权访问服务器的人不应该看到凭据。所以我需要将凭据存储在其他地方

有没有一种方法可以将服务帐户 JSON 存储在 NiFi 中,以便我可以在需要时在 ExecuteScript 中访问它或直接使用控制器服务?

【问题讨论】:

    标签: google-cloud-platform jython apache-nifi credentials google-cloud-iam


    【解决方案1】:

    您的问题的答案是否定的。没有在文件中或作为 JSON 数据结构分发服务帐户凭据的安全方法。无论您尝试如何隐藏、屏蔽或加密,我只需几分钟即可对您的混淆进行逆向工程。您的选择是易用性或安全性。

    如果您的代码在 Compute Engine 等 Google 计算服务上运行,您的代码可以使用通过元数据访问的默认服务帐号。这将阻止分发服务帐户 JSON 密钥文件的要求。但是,任何有权访问服务器的人也可以访问元数据服务器。这种技术称为 ADC(应用程序默认凭证)。这更安全,但在您的用例中并非万无一失。

    您没有提供足够的详细信息让我推荐替代解决方案。如果可以使用 Google OAuth 2.0 用户凭据,这将提供安全和临时 OAuth 访问令牌。但是,这是为人机交互(身份验证)而设计的。

    【讨论】:

    • 我明白了,我害怕那个。我们运行 Nifi 的服务器是我们自己的,所以从技术上讲,没有人应该访问它。但是,我们希望使用良好的安全实践,因此留下服务帐户密钥并不是一个好主意。我们将不得不考虑其他方法来隐藏文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2015-08-05
    • 2013-04-20
    相关资源
    最近更新 更多