Nifi 加密 variables/properties 个文件
Nifi encrypt variables/properties files
妮菲custom properties (per-environment property files) looks to be a perfect way to define an environment specific paths and credentials. The only issue is how to keep sensitive information there? There is Nifi Encrypt-Config Tool described in more details here.
除了nifi.properties
之外,Nifi Encrypt-Config Tool是否能够加密可变文件(用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 的现代版本中被视为 已弃用 ——仍然受支持,但不鼓励使用它们——并且 parameters were introduced in version 1.10.0 作为现代解决方案。参数确实支持敏感值,并且可以从框架级别的每个 属性 描述符访问,而不是基于每个字段,具体取决于开发人员支持它们的明确决定。您应该优先考虑用于存储流定义中所需的敏感值的参数。
根据您的威胁模型,您可能有不太健壮但可以接受的替代方案:
- 如果您接受 环境变量 的安全级别,您可以直接填充这些,它们将在支持 Expression Language 的任何属性中引用,与“ NiFi变量
- 您可以通过自定义 Docker 图像、启动脚本等编辑
nifi.properties
文件。该文件中任何修改或添加的属性都可以通过添加其密钥进行加密(属性 密钥描述符,而不是加密密钥)作为该文件中 nifi.sensitive.props.additional.keys
的逗号分隔列表。这些属性也将受到工具包的保护,并在 NiFi 应用程序启动期间在内存中解密。但是,nifi.properties
用于保存框架级别的配置值,而不是组件级别的属性。
妮菲custom properties (per-environment property files) looks to be a perfect way to define an environment specific paths and credentials. The only issue is how to keep sensitive information there? There is Nifi Encrypt-Config Tool described in more details here.
除了nifi.properties
之外,Nifi Encrypt-Config Tool是否能够加密可变文件(用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 的现代版本中被视为 已弃用 ——仍然受支持,但不鼓励使用它们——并且 parameters were introduced in version 1.10.0 作为现代解决方案。参数确实支持敏感值,并且可以从框架级别的每个 属性 描述符访问,而不是基于每个字段,具体取决于开发人员支持它们的明确决定。您应该优先考虑用于存储流定义中所需的敏感值的参数。
根据您的威胁模型,您可能有不太健壮但可以接受的替代方案:
- 如果您接受 环境变量 的安全级别,您可以直接填充这些,它们将在支持 Expression Language 的任何属性中引用,与“ NiFi变量
- 您可以通过自定义 Docker 图像、启动脚本等编辑
nifi.properties
文件。该文件中任何修改或添加的属性都可以通过添加其密钥进行加密(属性 密钥描述符,而不是加密密钥)作为该文件中nifi.sensitive.props.additional.keys
的逗号分隔列表。这些属性也将受到工具包的保护,并在 NiFi 应用程序启动期间在内存中解密。但是,nifi.properties
用于保存框架级别的配置值,而不是组件级别的属性。