Yolanda M. Davis created NIFI-4022:
--------------------------------------

             Summary: Use SASL Auth Scheme For Secured Zookeeper Client 
Interaction
                 Key: NIFI-4022
                 URL: https://issues.apache.org/jira/browse/NIFI-4022
             Project: Apache NiFi
          Issue Type: Bug
    Affects Versions: 1.2.0
            Reporter: Yolanda M. Davis


NiFi uses Zookeeper to assist in cluster orchestration including leader 
elections for Primary Node and Cluster Coordinator and to store state for 
various processors (such as MonitorActivity). In secured Zookeeper environments 
(supported by SASL + Kerberos) NiFi should protect the zNodes it creates to 
prevent users or hosts, outside of a NiFi cluster, from accessing or modifying 
entries.  In its current implementation security can be enforced for processors 
that store state information in Zookeeper, however zNodes used for managing 
Primary Node and Cluster Coordinator data are left open and susceptible to 
change from any user.  Also when zNodes are secured for processor state, a 
“Creator Only” policy is used which allows the system to determine the 
identification of the NiFi node and protect any zNodes created with that node 
id using Zookeeper’s “auth” scheme. The challenge with this scheme is that it 
limits the ability for other NiFi nodes in the cluster to access that zNode if 
needed (since it is specifically binds that zNode to the unique id of its 
creator).
 
To best protect zNodes created in Zookeeper by NiFi while maximizing NiFi’s 
ability to share information across the cluster I propose that we move to using 
Zookeeper’s SASL authentication scheme, which will allow the use of Kerberos 
principals for securing zNode with the appropriate permissions.  For maximum 
flexibility, these principals can be mapped appropriately in Zookeeper, using 
auth-to-local rules, to ensure that nodes across the cluster can share zNodes 
as needed. 
 
Potential Concerns/Challenges for Discussion:
 
1)      For existing NiFi users how will we migrate Zookeeper entries from the 
old security scheme to the new scheme?
2)      How should zNodes be reverted to open if kerberos is disabled?
3)      What will the performance impact be on the cluster once SASL scheme is 
enabled (since we’d be moving from open to protected)? Would require 
investigation
4)      Currently users can control authentication scheme via state management 
configuration for processors yet not for clusters.  Should we still maintain 
the practice of allowing schemes to be configurable for processors (with SASL 
being the new default)?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to