Nifi自定义属性(每个环境属性文件(看起来是定义特定于环境的路径和凭据的完美方式。唯一的问题是如何将敏感信息保存在那里?这里详细介绍了Nifi加密配置工具。
Nifi加密配置工具是否能够加密除nifi.properties
之外的变量文件(用nifi.variable.registry.properties
定义(
据我所知,它只加密nifi.properties
。这很重要,因为使用Nifi Docker Image,我只能定义nifi.variable.registry.properties
(NIFI_VARIABLE_REGISTRY_PROPERTIES
env-var(,而不能修改nifi.properties
。
NiFi加密配置工具与以下配置文件交互:
nifi.properties
login-identity-providers.xml
authorizers.xml
bootstrap.conf
flow.xml.gz
它不处理任何链接的自定义变量定义文件,并且不存在用于正确保护和存储敏感变量的机制由于这个原因,变量根本不支持任何敏感值。
在现代版本的NiFi中,变量被视为已弃用——仍然支持,但不鼓励使用它们——并且在1.10.0版本中引入了参数作为现代解决方案。参数确实支持敏感值,并且可以从框架级别的每个属性描述符访问,而不是基于每个字段访问,这取决于开发人员支持它们的明确决定。您应该为流定义中所需的敏感值的存储确定参数的优先级。
根据您的威胁模型,您可能有不太强大但可接受的替代方案:
- 如果您接受环境变量的安全级别,您可以直接填充这些变量,它们将在任何支持表达式语言的属性中被引用,与";NiFi变量">
- 您可以通过自定义Docker映像、启动脚本等编辑
nifi.properties
文件。该文件中任何修改或添加的属性都可以通过将其密钥(属性密钥描述符,而不是加密密钥(以逗号分隔列表的形式添加到该文件中的nifi.sensitive.props.additional.keys
来加密。这些属性也将受到工具包的保护,并在NiFi应用程序启动期间在内存中解密。但是,nifi.properties
是用来保存框架级别的配置值,而不是组件级别的属性