自定义属性中的 Nifi 敏感信息
Nifi sensitive info inside custom properties
将数据库文件放入 Nifi custom properties 有多安全?与参数上下文相比,这是否更不安全?
例如,DBCPConnectionPool 处理器具有名为 'Password' 的敏感 属性。如果我将自定义 属性 设置为 'Password', 是否可以在数据来源或变量注册表中找到未加密的密码值?
UPD
感谢@BryanBende,很明显我不能将凭据放入 .properties
文件,因为变量文件未使用 encrypt-config.sh
.
加密
另一方面,我仍然不明白如何在 DEV 和 PROD 环境之间重复使用单个 Nifi Registry 提交,自动切换到所需的参数上下文。此外,参数上下文切换需要禁用所有控制器服务,这对于 Nifi REST 来说非常痛苦和复杂 API。
敏感参数以加密方式存储在 flow.xml.gz 中,属性 描述符具有 sensitive(true)
的任何属性值也是如此,例如 DBCPConnectionPool 的密码 属性。
对于这个问题,我不完全确定“自定义 属性”的定义是什么,但是如果您指的是通过单击配置右上角的 + 图标添加到组件的动态属性屏幕,那么答案是它取决于...每个组件决定自定义描述符的外观 属性,因此如果描述符说它是敏感的,那么它是加密的,如果不是那么它不是。
例如,在 DBCPConnectionPool 中,动态属性不敏感:
如果您指的是使用流文件属性获取表达式语言中的值,那么这些值当前未加密。因此,如果您有一个带有“db.password”属性的流文件,该值将不会在所有地方都受到完全保护。
如果您谈论的是变量,它们不支持任何敏感存储/加密,这是创建参数上下文的原因之一。
将数据库文件放入 Nifi custom properties 有多安全?与参数上下文相比,这是否更不安全?
例如,DBCPConnectionPool 处理器具有名为 'Password' 的敏感 属性。如果我将自定义 属性 设置为 'Password', 是否可以在数据来源或变量注册表中找到未加密的密码值?
UPD
感谢@BryanBende,很明显我不能将凭据放入 .properties
文件,因为变量文件未使用 encrypt-config.sh
.
另一方面,我仍然不明白如何在 DEV 和 PROD 环境之间重复使用单个 Nifi Registry 提交,自动切换到所需的参数上下文。此外,参数上下文切换需要禁用所有控制器服务,这对于 Nifi REST 来说非常痛苦和复杂 API。
敏感参数以加密方式存储在 flow.xml.gz 中,属性 描述符具有 sensitive(true)
的任何属性值也是如此,例如 DBCPConnectionPool 的密码 属性。
对于这个问题,我不完全确定“自定义 属性”的定义是什么,但是如果您指的是通过单击配置右上角的 + 图标添加到组件的动态属性屏幕,那么答案是它取决于...每个组件决定自定义描述符的外观 属性,因此如果描述符说它是敏感的,那么它是加密的,如果不是那么它不是。
例如,在 DBCPConnectionPool 中,动态属性不敏感:
如果您指的是使用流文件属性获取表达式语言中的值,那么这些值当前未加密。因此,如果您有一个带有“db.password”属性的流文件,该值将不会在所有地方都受到完全保护。
如果您谈论的是变量,它们不支持任何敏感存储/加密,这是创建参数上下文的原因之一。