Google cloud platform 在ExecuteScript中使用控制器服务

Google cloud platform 在ExecuteScript中使用控制器服务,google-cloud-platform,jython,apache-nifi,credentials,google-cloud-iam,Google Cloud Platform,Jython,Apache Nifi,Credentials,Google Cloud Iam,我正在从事一个谷歌云项目,我想使用Jython连接到定制API。我需要提供谷歌服务帐户凭据,以便对自己进行身份验证,但出于安全原因,我不希望这些信息易于访问。我可以创建一个工作控制器服务,让我连接到谷歌云服务 我有可以执行身份验证的Python代码,但该代码设计为独立运行,并从文件加载凭据。但是,这对我来说是不可能的,因为可能有权访问服务器的人不应该看到凭据。所以我需要将凭证存储到其他地方 是否有一种方法可以将服务帐户JSON存储在NiFi中,以便在需要时在ExecuteScript中访问或直接

我正在从事一个谷歌云项目,我想使用Jython连接到定制API。我需要提供谷歌服务帐户凭据,以便对自己进行身份验证,但出于安全原因,我不希望这些信息易于访问。我可以创建一个工作控制器服务,让我连接到谷歌云服务

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


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

您的问题的答案是否定的。在文件或JSON数据结构中分发服务帐户凭据没有安全的方法。无论你如何试图隐藏、屏蔽或加密,我只需要几分钟就可以对你的模糊处理进行反向工程。您可以选择易用性或安全性

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


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

我明白了,我很害怕。我们运行的Nifi服务器是我们自己的,所以从技术上讲,任何人都不应该访问它。然而,我们希望使用良好的安全实践,所以将服务帐户密钥放在周围并不是一个好主意。我们将不得不考虑其他方法来隐藏该文件。