自定义属性中的Nifi敏感信息



将数据库加密货币放入Nifi自定义属性的安全性如何?与参数上下文相比,这是否不那么安全

例如,DBCPConnectionPool处理器具有名为"Password"的敏感属性。如果我将自定义属性设置为"密码",是否可以在数据来源或变量注册表中找到未加密的密码值

UPD

感谢@BryanBende,很明显,我无法将凭据放入.properties文件中,因为变量文件没有用encrypt-config.sh加密。

另一方面,我仍然不明白如何在DEV和PROD环境之间重用单个Nifi注册表提交,自动切换到所需的参数上下文。此外,参数上下文切换需要禁用所有控制器服务,这对于Nifi REST API来说非常痛苦和复杂。

敏感参数加密存储在flow.xml.gz中,属性描述符具有sensitive(true)的任何属性值也加密存储,如DBCPConnectionPool的Password属性。

我不完全确定";自定义属性";是针对这个问题的,但如果你的意思是通过单击配置屏幕右上角的+图标添加到组件中的动态属性,那么答案是它取决于。。。每个组件都决定了自定义属性的描述符是什么样子的,所以如果描述符说它是敏感的,那么它就是加密的,如果不是,那么它就不是。

例如,在DBCPConnectionPool中,动态属性不敏感:

https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java#L307-L316

如果您引用的是使用流文件属性来获取表达式语言中的值,则这些值当前未加密。因此,如果你有一个流文件,用一个";db.密码";属性,则该值不会在所有地方都得到完全保护。

如果您谈论的是变量,它们不支持任何敏感的存储/加密,这也是创建参数上下文的原因之一。

最新更新