我正在研究Google Cloud Project,并且想使用Jython连接到自定义API。我需要提供Google服务帐户凭据以对自己进行身份验证,但是出于安全原因,我不希望这些信息易于访问。我可以创建一个可以运行的Controller Service,使我可以连接到Google Cloud Services。
我有可以执行身份验证的Python代码,但是该代码旨在独立运行并从文件中加载凭据。但是,这对我来说是不可能的,因为对于可能访问服务器的人员来说,凭据不应该可见。所以我需要将凭据存储在其他地方
有没有一种方法可以将服务帐户JSON存储在NiFi中,以便可以在ExecuteScript中访问它,或者直接使用Controller Service?
答案 0 :(得分:3)
您的问题的答案为否。没有安全的方法可以在文件中或作为JSON数据结构分发服务帐户凭据。无论您尝试隐藏,掩盖或加密多少,都只需花费几分钟即可对混淆进行反向工程。您的选择是易于使用或安全。
如果您的代码在诸如Compute Engine之类的Google Compute服务上运行,则您的代码可以使用通过元数据访问的默认服务帐户。这将避免分发服务帐户JSON密钥文件的要求。但是,有权访问服务器的任何人都可以访问元数据服务器。此技术称为ADC(应用程序默认凭据)。这是更安全的方法,但在您的用例中不是防弹的。
您没有为我提供足够的详细信息,无法推荐替代解决方案。如果可以使用Google OAuth 2.0用户凭据,则将提供安全性和临时OAuth访问令牌。但是,这是为人类交互(身份验证)设计的。