Apache Nifi - 如何在 Nifi 启动时制定不同的用户组和策略?

Apache Nifi - How do I make different user groups and policies upon Nifi startup?

我了解如何使用 Apache Nifi GUI 添加新用户和执行策略。然而,我正在尝试自动化这个过程,这样当我启动我的 Docker Nifi 容器时,它已经有三个用户组(基本上是管理员、用户和 reader)。我正在使用 NiPyAPI,但老实说,我什至无法获得完整的循环策略列表。

我不使用注册表组件,因为我现在只需要一个简单的工作流程。如果你在简单的情况下有很大的动力,我很乐意倾听。

我遇到的具体问题是:我无法找出可用策略的可靠列表 - 我能看到的所有方法和端点都要求您已经知道它们是什么。一旦我将所有角色添加到管理员用户,我就可以在 GUI 中四处乱逛并打印出来,但我觉得应该有一种更好的方法来获得一个包含所有选项的综合和完整列表。

任何关于使所有这些用户组和策略自动化的建议(最好使用 Python)将不胜感激。

哦,是的,而且,我使用的是 SSL 而不是 LDAP。

如果您使用的是 TLS 客户端证书身份验证(而非 LDAP),则用户由静态标识符定义(通过位于nifi.properties 文件)。每个定义的用户都有分配给该用户和资源的策略(组件 - PG、处理器等),确定用户对view/modify资源的权限。

在这种情况下,您可以使用一些合适的方法:

  1. 使用 UI 创建 "good" 状态,然后从 $NIFI_HOME/conf/ 导出 authorizers.xmlusers.xmlauthorizations.xml 文件目录。这些 XML 文件可以预加载到您的 Docker 容器中,以便从第一次启动时就可以使用这些相同的策略。
  2. 通过 NiFi UI 完成的所有操作实际上使用 NiFi REST API behind the scenes. You can open your browser's Developer Tools panel to monitor the API calls used to list, create, and modify user definitions and access policy assignments, and copy those invocations to the scripting language of your choice to dynamically create these policies on container startup (using NiPyAPI, NiFi CLI,通过 curl 等进行的原始 HTTP 调用)

这些策略记录在 Apache NiFi 管理指南的 Global Access Policies and Component-level Access Policies 部分下。