[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026938#comment-16026938
 ] 

Michael Han commented on ZOOKEEPER-2779:
----------------------------------------

I think adding the option to skip the default ACL is reasonable - the general 
idea of providing an escape hatch is useful in any cases, in particular for 
debugging.

bq. It also, perversely, makes security worse as the entire ZooKeeper instance 
must be opened to "super" user while enabled reconfig
This is kind of true because of unrestricted access for superuser. ZK does not 
have a formal threat model so it is not clear to me what kind of security risk 
running a cluster in superuser mode would be - in any case this should be 
discussed in another JIRA, because if superuser is not necessarily tied to the 
dynamic reconfig use cases, if having a superuser exposes certain security risk 
we should probably try address that, for example making this a debug only 
feature.

Meanwhile I'd argue the approach proposed in this patch is not safer either. 
The approach this patch is using is to do online ACL configuration, and that is 
not safe comparing offline ACL configuration because there is an open window 
during which an attacker can access the cluster and configure the ACLs on 
various zNode including the reconfig node, even with authentication in place 
(assume we have malicious Kerberos users for example - so we have to do 
authorization in addition to authentication.). It is certainly possible to 
improve the current solution such that we don't need superuser running for 
reconfig plus also retain the offline configuration, but that's a better fit 
for a separate JIRA.

So I am +1 with the idea on introducing a skip option, but I'd like to revise 
some of the messages delivered in the documents. In particular does not 
advertise it is a safe / secure approach for setting up reconfig, but instead 
mention this as a convenient option for debugging / experimenting with reconfig 
feature.

In general we are still safe because reconfig as a feature has to be opt-in (by 
default it's disabled). 

> Add option to not set ACL for reconfig node
> -------------------------------------------
>
>                 Key: ZOOKEEPER-2779
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2779
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.5.3
>            Reporter: Jordan Zimmerman
>            Assignee: Jordan Zimmerman
>             Fix For: 3.5.4, 3.6.0
>
>
> ZOOKEEPER-2014 changed the behavior of the /zookeeper/config node by setting 
> the ACL to {{ZooDefs.Ids.READ_ACL_UNSAFE}}. This change makes it very 
> cumbersome to use the reconfig APIs. It also, perversely, makes security 
> worse as the entire ZooKeeper instance must be opened to "super" user while 
> enabled reconfig (per {{ReconfigExceptionTest.java}}). Provide a mechanism 
> for savvy users to disable this ACL so that an application-specific custom 
> ACL can be set.



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

Reply via email to