Apache nifi Nifi加密变量/属性文件

Apache nifi Nifi加密变量/属性文件,apache-nifi,Apache Nifi,Nifi(每个环境属性文件)似乎是定义特定于环境的路径和凭据的完美方法。唯一的问题是如何在那里保存敏感信息?有更详细的描述 能够加密变量文件(用nifi.variable.registry.properties定义),除了nifi.properties 据我所知,它只加密nifi.properties。这很重要,因为使用我只能定义nifi.variable.registry.properties(nifi\u variable\u registry\u propertiesenv var),而无

Nifi(每个环境属性文件)似乎是定义特定于环境的路径和凭据的完美方法。唯一的问题是如何在那里保存敏感信息?有更详细的描述

能够加密变量文件(用
nifi.variable.registry.properties
定义),除了
nifi.properties


据我所知,它只加密
nifi.properties
。这很重要,因为使用我只能定义
nifi.variable.registry.properties
nifi\u variable\u registry\u properties
env var),而无法修改
nifi.properties

,nifi加密配置工具与以下配置文件交互:

  • nifi.properties
  • login identity providers.xml
  • authorizers.xml
  • bootstrap.conf
  • flow.xml.gz
它不处理任何链接的自定义变量定义文件,并且没有适当保护和存储敏感变量的机制由于这个原因,变量根本不支持任何敏感值

在NiFi的现代版本中,变量被视为不推荐使用的变量——仍然支持,但不鼓励使用它们——并被视为现代解决方案。参数确实支持敏感值,并且可以在框架级别从每个属性描述符访问,而不是基于每个字段,这取决于开发人员支持这些参数的明确决定。您应该对存储流定义中所需的敏感值的参数进行优先级排序

根据您的威胁模型,您可能有不太可靠但可接受的备选方案:

  • 如果您接受环境变量的安全级别,则可以直接填充这些变量,它们将在支持的任何属性中引用,与“NiFi变量”相同
  • 您可以通过自定义Docker映像、启动脚本等编辑
    nifi.properties
    文件。该文件中任何修改或添加的属性都可以通过将其密钥(属性密钥描述符,而不是加密密钥)作为逗号分隔列表添加到该文件中的
    nifi.sensitive.props.additional.keys
    来加密。这些属性也将受到工具包的保护,并在NiFi应用程序启动期间在内存中解密。但是,
    nifi.properties
    用于保存框架级配置值,而不是组件级属性

NiFi加密配置工具与以下配置文件交互:

  • nifi.properties
  • login identity providers.xml
  • authorizers.xml
  • bootstrap.conf
  • flow.xml.gz
它不处理任何链接的自定义变量定义文件,并且没有适当保护和存储敏感变量的机制由于这个原因,变量根本不支持任何敏感值

在NiFi的现代版本中,变量被视为不推荐使用的变量——仍然支持,但不鼓励使用它们——并被视为现代解决方案。参数确实支持敏感值,并且可以在框架级别从每个属性描述符访问,而不是基于每个字段,这取决于开发人员支持这些参数的明确决定。您应该对存储流定义中所需的敏感值的参数进行优先级排序

根据您的威胁模型,您可能有不太可靠但可接受的备选方案:

  • 如果您接受环境变量的安全级别,则可以直接填充这些变量,它们将在支持的任何属性中引用,与“NiFi变量”相同
  • 您可以通过自定义Docker映像、启动脚本等编辑
    nifi.properties
    文件。该文件中任何修改或添加的属性都可以通过将其密钥(属性密钥描述符,而不是加密密钥)作为逗号分隔列表添加到该文件中的
    nifi.sensitive.props.additional.keys
    来加密。这些属性也将受到工具包的保护,并在NiFi应用程序启动期间在内存中解密。但是,
    nifi.properties
    用于保存框架级配置值,而不是组件级属性