+1 (non-binding) -- Harsha
On April 24, 2015 at 9:59:09 AM, Parth Brahmbhatt (pbrahmbh...@hortonworks.com) wrote: You are right, moved it to the default implementation section. Thanks Parth On 4/24/15, 9:52 AM, "Gwen Shapira" <gshap...@cloudera.com> wrote: >Sample ACL JSON and Zookeeper is in public API, but I thought it is >part of DefaultAuthorizer (Since Sentry and Argus won't be using >Zookeeper). >Am I wrong? Or is it the KIP? > >On Fri, Apr 24, 2015 at 9:49 AM, Parth Brahmbhatt ><pbrahmbh...@hortonworks.com> wrote: >> Thanks for clarifying Gwen, KIP updated. >> >> I tried to make the distinction by creating a section for all public >>APIs >> >>https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorization+ >>In >> terface#KIP-11-AuthorizationInterface-PublicInterfacesandclasses >> >> Let me know if you think there is a better way to reflect this. >> >> Thanks >> Parth >> >> On 4/24/15, 9:37 AM, "Gwen Shapira" <gshap...@cloudera.com> wrote: >> >>>+1 (non-binding) >>> >>>Two nitpicks for the wiki: >>>* Heartbeat is probably a READ and not CLUSTER operation. I'm pretty >>>sure new consumers need it to be part of a consumer group. >>>* Can you clearly separate which parts are the API (common to every >>>Authorizer) and which parts are DefaultAuthorizer implementation? It >>>will make reviews and Authorizer implementations a bit easier to know >>>exactly which is which. >>> >>>Gwen >>> >>>On Fri, Apr 24, 2015 at 9:28 AM, Parth Brahmbhatt >>><pbrahmbh...@hortonworks.com> wrote: >>>> Hi, >>>> >>>> I would like to open KIP-11 for voting. >>>> >>>> Thanks >>>> Parth >>>> >>>> On 4/22/15, 1:56 PM, "Parth Brahmbhatt" <pbrahmbh...@hortonworks.com> >>>> wrote: >>>> >>>>>Hi Jeff, >>>>> >>>>>Thanks a lot for the review. I think you have a valid point about acls >>>>>being duplicated and the simplest solution would be to modify acls >>>>>class >>>>>so they hold a set of principals instead of single principal. i.e >>>>> >>>>><user_a,user_b> has <READ,WRITE,DESCRIBE> Permissions on <Topic1> from >>>>><Host1, Host2, Host3>. >>>>> >>>>>I think the evaluation order only matters for the permissionType which >>>>>is >>>>>Deny acls should be evaluated before allow acls. To give you an >>>>>example >>>>>suppose we have following acls >>>>> >>>>>acl1 -> user1 is allowed to READ from all hosts. >>>>>acl2 -> host1 is allowed to READ regardless of who is the user. >>>>>acl3 -> host2 is allowed to READ regardless of who is the user. >>>>> >>>>>acl4 -> user1 is denied to READ from host1. >>>>> >>>>>As stated in the KIP we first evaluate DENY so if user1 tries to >>>>>access >>>>>from host1 he will be denied(acl4), even though both user1 and host1 >>>>>has >>>>>acl’s for allow with wildcards (acl1, acl2). >>>>>If user1 tried to READ from host2 , the action will be allowed and it >>>>>does >>>>>not matter if we match acl3 or acl1 so I don’t think the evaluation >>>>>order >>>>>matters here. >>>>> >>>>>“Will people actually use hosts with users?” I really don’t know but >>>>>given >>>>>ACl’s are part of our Public APIs I thought it is better to try and >>>>>cover >>>>>more use cases. If others think this extra complexity is not worth the >>>>>value its adding please raise your concerns so we can discuss if it >>>>>should >>>>>be removed from the acl structure. Note that even in absence of hosts >>>>>from >>>>>ACL users will still be able to whitelist/blacklist host as long as we >>>>>start supporting principalType = “host”, easy to add and can be an >>>>>incremental improvement. They will however loose the ability to >>>>>restrict >>>>>access to users just from a set of hosts. >>>>> >>>>>We agreed to offer a CLI to overcome the JSON acl config >>>>>https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorizati >>>>>on >>>>>+I >>>>>n >>>>>terface#KIP-11-AuthorizationInterface-AclManagement(CLI). I still like >>>>>Jsons but that probably has something to do with me being a developer >>>>>:-). >>>>> >>>>>Thanks >>>>>Parth >>>>> >>>>>On 4/22/15, 11:38 AM, "Jeff Holoman" <jholo...@cloudera.com> wrote: >>>>> >>>>>>Parth, >>>>>> >>>>>>This is a long thread, so trying to keep up here, sorry if this has >>>>>>been >>>>>>covered before. First, great job on the KIP proposal and work so far. >>>>>> >>>>>>Are we sure that we want to tie host level access to a given user? My >>>>>>understanding is that the ACL will be (omitting some fields) >>>>>> >>>>>>user_a, host1, host2, host3 >>>>>>user_b, host1, host2, host3 >>>>>> >>>>>>So there would potentially be a lot of redundancy in the configs. >>>>>>Does >>>>>>it >>>>>>make sense to have hosts be at the same level as principal in the >>>>>>hierarchy? This way you could just blanket the allowed / denied hosts >>>>>>and >>>>>>only have to worry about the users. So if you follow this, then >>>>>> >>>>>>we can wildcard the user so we can have a separate list of just >>>>>>host-based >>>>>>access. What's the order that the perms would be evaluated if a there >>>>>>was >>>>>>more than one match on a principal ? >>>>>> >>>>>>Is the thought that there wouldn't usually be much overlap on hosts? >>>>>>I >>>>>>guess I can imagine a scenario where I want to offline/online access >>>>>>to a >>>>>>particular hosts or set of hosts and if there was overlap, I'm doing >>>>>>a >>>>>>bunch of alter commands for just a single host. Maybe this is too >>>>>>contrived >>>>>>an example? >>>>>> >>>>>>I agree that having this level of granularity gives flexibility but I >>>>>>wonder if people will actually use it and not just * the hosts for a >>>>>>given >>>>>>user and create separate "global" list as i mentioned above? >>>>>> >>>>>>The only other system I know of that ties users with hosts for access >>>>>>is >>>>>>MySql and I don't love that model. Companies usually standardize on >>>>>>group >>>>>>authorization anyway, are we complicating that issue with the >>>>>>inclusion >>>>>>of >>>>>>hosts attached to users? Additionally I worry about the debt of big >>>>>>JSON >>>>>>configs in the first place, most non-developers find them >>>>>>non-intuitive >>>>>>already, so anything to ease this I think would be beneficial. >>>>>> >>>>>> >>>>>>Thanks >>>>>> >>>>>>Jeff >>>>>> >>>>>>On Wed, Apr 22, 2015 at 2:22 PM, Parth Brahmbhatt < >>>>>>pbrahmbh...@hortonworks.com> wrote: >>>>>> >>>>>>> Sorry I missed your last questions. I am +0 on adding ―host option >>>>>>>for >>>>>>> ―list, we could add it for symmetry. Again if this is only a CLI >>>>>>>change >>>>>>>it >>>>>>> can be added later if you mean adding this in authorizer interface >>>>>>>then >>>>>>>we >>>>>>> should make a decision now. >>>>>>> >>>>>>> Given a choice I would like to actually keep only one option which >>>>>>>is >>>>>>> resource based get (remove even the get based on principal). I see >>>>>>>those >>>>>>> (getAcl for principal or host) as special filtering case which can >>>>>>>easily >>>>>>> be achieved by a third party tool by doing "list all topics" and >>>>>>>calling >>>>>>> getAcls for each topic and applying filtering logic on that. I >>>>>>>really >>>>>>> don’t see the need to make those first class citizens of the >>>>>>>authorizer >>>>>>> interface given these kind of queries will be issued outside of >>>>>>>broker >>>>>>>JVM >>>>>>> so they will not benefit from the caching and because the storage >>>>>>>will >>>>>>>be >>>>>>> indexed on resource both these options even as a first class API >>>>>>>will >>>>>>>just >>>>>>> scan all topic acls and apply filtering logic. >>>>>>> >>>>>>> Thanks >>>>>>> Parth >>>>>>> >>>>>>> On 4/22/15, 11:08 AM, "Parth Brahmbhatt" >>>>>>><pbrahmbh...@hortonworks.com> >>>>>>> wrote: >>>>>>> >>>>>>> >Please see all the available options here >>>>>>> > >>>>>>> >>>>>>>https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authoriza >>>>>>>ti >>>>>>>on >>>>>>>+ >>>>>>>I >>>>>>> >nterface#KIP-11-AuthorizationInterface-AclManagement(CLI) . I >>>>>>>think >>>>>>>it >>>>>>> >covers both hosts and operations and allows to specify a list for >>>>>>>both. >>>>>>> > >>>>>>> >Thanks >>>>>>> >Parth >>>>>>> > >>>>>>> >From: Tom Graves >>>>>>><tgraves...@yahoo.com<mailto:tgraves...@yahoo.com>> >>>>>>> >Reply-To: Tom Graves >>>>>>><tgraves...@yahoo.com<mailto:tgraves...@yahoo.com>> >>>>>>> >Date: Wednesday, April 22, 2015 at 11:02 AM >>>>>>> >To: Parth Brahmbhatt >>>>>>> ><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>>, >>>>>>> >"dev@kafka.apache.org<mailto:dev@kafka.apache.org>" >>>>>>> ><dev@kafka.apache.org<mailto:dev@kafka.apache.org>> >>>>>>> >Subject: Re: [DISCUSS] KIP-11- Authorization design for kafka >>>>>>>security >>>>>>> > >>>>>>> >Thanks for the explanations Parth. >>>>>>> > >>>>>>> >On the configs questions, the way I see it is its more likely to >>>>>>> >accidentally give everyone access, especially since you have to >>>>>>>run >>>>>>>a >>>>>>> >separate command to change the acls. If there was some config for >>>>>>> >defaults, a cluster admin could change that to be nobody or >>>>>>>certain >>>>>>>set >>>>>>> >of users, then grant others permissions. This would also remove >>>>>>>the >>>>>>>race >>>>>>> >between commands. This is something you can always add later >>>>>>>though >>>>>>>if >>>>>>> >people request it. >>>>>>> > >>>>>>> >So in kafka-acl.sh how do I actually tell it what the operation >>>>>>>is? >>>>>>> >kafka-acl.sh --topic testtopic --add --grandprincipal >>>>>>>user:joe,user:kate >>>>>>> > >>>>>>> >where does READ, WRITE, etc go? Can specify as a list so I don't >>>>>>>have >>>>>>>to >>>>>>> >run this a bunch of times for each. >>>>>>> > >>>>>>> >Do you want to have a --host option for --list so that admins >>>>>>>could >>>>>>>see >>>>>>> >what acls apply to specific host(s)? >>>>>>> > >>>>>>> >Tom >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> >On Wednesday, April 22, 2015 11:38 AM, Parth Brahmbhatt >>>>>>> ><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>> >>>>>>>wrote: >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> >FYI, I have modified the KIP to include group as resource. In >>>>>>>order >>>>>>>to >>>>>>> >access “joinGroup” and “commitOFfset” APIs the user will need a >>>>>>>read >>>>>>> >permission on topic and WRITE permission on group. >>>>>>> > >>>>>>> >I plan to open a VOTE thread by noon if there are no more >>>>>>>concerns. >>>>>>> > >>>>>>> >Thanks >>>>>>> >Parth >>>>>>> > >>>>>>> >On 4/22/15, 9:03 AM, "Tom Graves" >>>>>>> >>>>>>>><tgraves...@yahoo.com.INVALID<mailto:tgraves...@yahoo.com.INVALID>> >>>>>>> wrote: >>>>>>> > >>>>>>> >>Hey everyone, >>>>>>> >>Sorry to jump in on the conversation so late. I'm new to Kafka. >>>>>>>I'll >>>>>>> >>apologize in advance if you have already covered some of my >>>>>>>questions. I >>>>>>> >>read through the wiki and had some comments and questions. >>>>>>> >>1) public enum Operation needs EDIT changed to ALTER >>>>>>> > >>>>>>> >> Done. >>>>>>> > >>>>>>> >>2) Does the Authorizer class need a setAcls? Rather then just >>>>>>>add >>>>>>>to >>>>>>>be >>>>>>> >>able to set to explicit list and overwrite what was there? I see >>>>>>>the >>>>>>> >>kafka-acl.sh lists a removeall so I guess you could do removeall >>>>>>>and >>>>>>>then >>>>>>> >>add. I also don't see a removeall in the Authorizer class, is it >>>>>>>going >>>>>>> >>to loop through them all to remove each one? >>>>>>> > >>>>>>> > There is an overloaded version of removeAcls in the interface >>>>>>>that >>>>>>> >takes >>>>>>> >in resource as the only input and as described in the javadoc all >>>>>>>the >>>>>>>acls >>>>>>> >attached to that resource will be deleted. To cover the setAcl use >>>>>>>case >>>>>>> >the caller can first call remove and then add. >>>>>>> > >>>>>>> >>3) Can someone tell me what the use case to do acls based on the >>>>>>>hosts? >>>>>>> >>I can see some possibilities just wondering if we can concrete >>>>>>>ones >>>>>>>where >>>>>>> >>one user is allowed from one host but not another. >>>>>>> > >>>>>>> > I am not sure if I understand the question given the use case >>>>>>>you >>>>>>> >described in your question is what we are trying to cover with use >>>>>>>of >>>>>>> >hosts in Acl. There are some additional use cases like “allow >>>>>>>access >>>>>>>to >>>>>>> >any user from host1,host2” but I think primarily it gives the >>>>>>>admins >>>>>>>the >>>>>>> >ability to define acls at a more granular level. >>>>>>> > >>>>>>> >>4) I'm a bit unclear how the "resource" works in the Authorizer >>>>>>>class. >>>>>>> >>From what I see we have 2 resources - topics and cluster. If I >>>>>>>want >>>>>>>to >>>>>>> >>add an acl to allow "joe" to CREATE for the cluster then I call >>>>>>>addAcls >>>>>>> >>with Acl("user: joe", ALLOW, Set(*), Set(CREATE)) and "cluster"? >>>>>>>What >>>>>>> >>if I want to call addAcls for DESCRIBE on a topic? Is the >>>>>>>resource >>>>>>>then >>>>>>> >>"topic" or is it the topic name? >>>>>>> > >>>>>>> > We now have 3 resources(added group), please see the updated >>>>>>>doc. >>>>>>>The >>>>>>> >CREATE acl that you described is correct. For any topic operation >>>>>>>you >>>>>>> >should use topic name as the resource name and for group the user >>>>>>>will >>>>>>> >provide groupId as resource name. >>>>>>> > >>>>>>> >>5) reassigning partitions is a CLUSTER_ACTION or superuser? Its >>>>>>>not >>>>>>> >>totally clear to me the differences between these. what about >>>>>>>increasing >>>>>>> >># of partitions? >>>>>>> > >>>>>>> > I see this as an alter topic operation so it is at topic level >>>>>>>and >>>>>>>the >>>>>>> >user must have alter permissions on topic. >>>>>>> > >>>>>>> >>6) groups are mentioned, are we supporting right away or is that >>>>>>>a >>>>>>>follow >>>>>>> >>on item? (is there going to be a kafka.supergroups) >>>>>>> > >>>>>>> > I think it can be a separate jira just for braking down the >>>>>>>code >>>>>>> >review >>>>>>> >in smaller chunk. We will support it in first version but I think >>>>>>>if >>>>>>>we >>>>>>> >can not do it for any reason that should not block a release with >>>>>>>all >>>>>>>the >>>>>>> >other authZ work. We made deliberate design choices (like >>>>>>>introducing >>>>>>>a >>>>>>> >principalType in KafkaPrinciapl) to allow supporting groups as an >>>>>>> >incremental change. >>>>>>> > >>>>>>> >>7) Are there config options for setting acls when I create my >>>>>>>topic? >>>>>>>Or >>>>>>> >>do I have to create my topic and then run the kafka-acl.sh script >>>>>>>to >>>>>>>set >>>>>>> >>them? Although its very small, there would be possible race >>>>>>>there >>>>>>>that >>>>>>> >>someone could start producing to topic before acls are set. >>>>>>> > >>>>>>> > We discussed this yesterday and we agreed to go with >>>>>>>kafka-acl.sh. >>>>>>>Yes >>>>>>> >there is a very very small window of vulnerability but I think >>>>>>>that >>>>>>>really >>>>>>> >does not warrant to change the decision in this case. >>>>>>> > >>>>>>> >>8) are there configs for cluster level acl defaults? Or does it >>>>>>>default >>>>>>> >>to superusers on bringing up new cluster and you have to modify >>>>>>>with >>>>>>>cli. >>>>>>> >>thanks,Tom >>>>>>> > >>>>>>> > No defaults, the default is superusers will have full access. >>>>>>>I >>>>>>>don’t >>>>>>> >think making assumptions about ones security requirement should be >>>>>>>our >>>>>>> >burden. >>>>>>> > >>>>>>> > >>>>>>> >> >>>>>>> >> On Tuesday, April 21, 2015 7:10 PM, Parth Brahmbhatt >>>>>>> >><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>> >>>>>>>wrote: >>>>>>> >> >>>>>>> >> >>>>>>> >> I have added the notes to KIP-11 Open question sections. >>>>>>> >> >>>>>>> >>Thanks >>>>>>> >>Parth >>>>>>> >> >>>>>>> >>On 4/21/15, 4:49 PM, "Gwen Shapira" >>>>>>> >><gshap...@cloudera.com<mailto:gshap...@cloudera.com>> wrote: >>>>>>> >> >>>>>>> >>>Adding my notes from today's call to the thread: >>>>>>> >>> >>>>>>> >>>** Deny or Allow all by default? We will add a configuration to >>>>>>> >>>control this. The configuration will default to “allow” for >>>>>>>backward >>>>>>> >>>compatibility. Security admins can set it to "deny" >>>>>>> >>> >>>>>>> >>>** Storing ACLs for default authorizers: We'll store them in ZK. >>>>>>>We'll >>>>>>> >>>support pointing the authorizer to any ZK. >>>>>>> >>>The use of ZK will be internal to the default authorizer. >>>>>>>Authorizer >>>>>>> >>>reads ACLs from cache every hour. We proposed having mechanism >>>>>>> >>>(possibly via new ZK node) to tell broker to refresh the cache >>>>>>> >>>immediately. >>>>>>> >>> >>>>>>> >>>** Support deny as permission type - we agreed to keep this. >>>>>>> >>> >>>>>>> >>>** Mapping operations to API: We may need to add Group as a >>>>>>>resource, >>>>>>> >>>with JoinGroup and OffsetCommit require privilege on the >>>>>>>consumer >>>>>>> >>>group. >>>>>>> >>>This can be something we pass now and authorizers can support in >>>>>>> >>>future. - Jay will write specifics to the mailing list >>>>>>>discussion. >>>>>>> >>> >>>>>>> >>>On Tue, Apr 21, 2015 at 4:32 PM, Jay Kreps >>>>>>> >>><jay.kr...@gmail.com<mailto:jay.kr...@gmail.com>> wrote: >>>>>>> >>>> Following up on the KIP discussion. Two options for >>>>>>>authorizing >>>>>>> >>>>consumers >>>>>>> >>>> to read topic "t" as part of group "g": >>>>>>> >>>> 1. READ permission on resource /topic/t >>>>>>> >>>> 2. READ permission on resource /topic/t AND WRITE permission >>>>>>>on >>>>>>> >>>>/group/g >>>>>>> >>>> >>>>>>> >>>> The advantage of (1) is that it is simpler. The disadvantage >>>>>>>is >>>>>>>that >>>>>>> >>>>any >>>>>>> >>>> member of any group that reads from t can commit offsets as >>>>>>>any >>>>>>>other >>>>>>> >>>> member of a different group. This doesn't effect data security >>>>>>>(who >>>>>>> >>>>can >>>>>>> >>>> access what) but it is a bit of a management issue--a >>>>>>>malicious >>>>>>>person >>>>>>> >>>>can >>>>>>> >>>> cause data loss or duplicates for another consumer by >>>>>>>committing >>>>>>> >>>>offset. >>>>>>> >>>> >>>>>>> >>>> I think I favor (2) but it's worth it to think it through. >>>>>>> >>>> >>>>>>> >>>> -Jay >>>>>>> >>>> >>>>>>> >>>> On Tue, Apr 21, 2015 at 2:43 PM, Parth Brahmbhatt < >>>>>>> >>>> >>>>>>>pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>> >>>>>>> >>>>wrote: >>>>>>> >>>> >>>>>>> >>>>> Hey Jun, >>>>>>> >>>>> >>>>>>> >>>>> Yes and we support wild cards for all acl entities principal, >>>>>>>hosts >>>>>>> >>>>>and >>>>>>> >>>>> operation. >>>>>>> >>>>> >>>>>>> >>>>> Thanks >>>>>>> >>>>> Parth >>>>>>> >>>>> >>>>>>> >>>>> On 4/21/15, 9:06 AM, "Jun Rao" >>>>>>> >>>>><j...@confluent.io<mailto:j...@confluent.io>> wrote: >>>>>>> >>>>> >>>>>>> >>>>> >Harsha, Parth, >>>>>>> >>>>> > >>>>>>> >>>>> >Thanks for the clarification. This makes sense. Perhaps we >>>>>>>can >>>>>>> >>>>>clarify the >>>>>>> >>>>> >meaning of those rules in the wiki. >>>>>>> >>>>> > >>>>>>> >>>>> >Related to this, it seems that we need to support wildcard >>>>>>>in >>>>>>> >>>>>cli/request >>>>>>> >>>>> >protocol for topics? >>>>>>> >>>>> > >>>>>>> >>>>> >Jun >>>>>>> >>>>> > >>>>>>> >>>>> >On Mon, Apr 20, 2015 at 9:07 PM, Parth Brahmbhatt < >>>>>>> >>>>> >>>>>>>>pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>> >>>>>>> >>>>>wrote: >>>>>>> >>>>> > >>>>>>> >>>>> >> The iptables on unix supports the DENY operator, not that >>>>>>>it >>>>>>> >>>>>should >>>>>>> >>>>> >> matter. The deny operator can also be used to specify >>>>>>>³allow >>>>>>>user1 >>>>>>> >>>>>to >>>>>>> >>>>> >>READ >>>>>>> >>>>> >> from topic1 from all hosts but host1,host2². Again we >>>>>>>could >>>>>>>add a >>>>>>> >>>>>host >>>>>>> >>>>> >> group semantic and extra complexity around that, not sure >>>>>>>if >>>>>>>its >>>>>>> >>>>>worth >>>>>>> >>>>> >>it. >>>>>>> >>>>> >> In addition with DENY operator you are now not forced to >>>>>>>create a >>>>>>> >>>>> >>special >>>>>>> >>>>> >> group just to support the authorization use case. I am not >>>>>>> >>>>>convinced >>>>>>> >>>>> >>that >>>>>>> >>>>> >> the operator it self is really all that confusing. There >>>>>>>are 3 >>>>>>> >>>>>practical >>>>>>> >>>>> >> use cases: >>>>>>> >>>>> >> - Resource with no acl what so ever -> allow access to >>>>>>>everyone ( >>>>>>> >>>>>just >>>>>>> >>>>> >>for >>>>>>> >>>>> >> backward compatibility, I would much rather fail close and >>>>>>>force >>>>>>> >>>>>users >>>>>>> >>>>> >>to >>>>>>> >>>>> >> explicitly grant acls that allows access to all users.) >>>>>>> >>>>> >> - Resource with some acl attached -> only users that have >>>>>>>a >>>>>>> >>>>>matching >>>>>>> >>>>> >>allow >>>>>>> >>>>> >> acl are allowed (i.e. ³allow READ access to topic1 to >>>>>>>user1 >>>>>>>from >>>>>>> >>>>>all >>>>>>> >>>>> >> hosts², only user1 has READ access and no other user has >>>>>>>access of >>>>>>> >>>>>any >>>>>>> >>>>> >> kind) >>>>>>> >>>>> >> - Resource with some allow and some deny acl attached -> >>>>>>>users >>>>>>>are >>>>>>> >>>>> >>allowed >>>>>>> >>>>> >> to perform operation only when they satisfy allow acl and >>>>>>>do >>>>>>>not >>>>>>> >>>>>have >>>>>>> >>>>> >> conflicting deny acl. Users that have no acl(allow or >>>>>>>deny) >>>>>>>will >>>>>>> >>>>>still >>>>>>> >>>>> >>not >>>>>>> >>>>> >> have any access. (i.e. ³allow READ access to topic1 to >>>>>>>user1 >>>>>>>from >>>>>>> >>>>>all >>>>>>> >>>>> >> hosts except host1 and host², only user1 has access but >>>>>>>not >>>>>>>from >>>>>>> >>>>>host1 >>>>>>> >>>>> >>an >>>>>>> >>>>> >> host2) >>>>>>> >>>>> >> >>>>>>> >>>>> >> I think we need to make a decision on deny primarily >>>>>>>because >>>>>>>with >>>>>>> >>>>> >> introduction of acl management API, Acl is now a public >>>>>>>class >>>>>>>that >>>>>>> >>>>>will >>>>>>> >>>>> >>be >>>>>>> >>>>> >> used by Ranger/Santry and other authroization providers. >>>>>>>In >>>>>>> >>>>>Current >>>>>>> >>>>> >>design >>>>>>> >>>>> >> the acl has a permissionType enum field with possible >>>>>>>values >>>>>>>of >>>>>>> >>>>>Allow >>>>>>> >>>>> >>and >>>>>>> >>>>> >> Deny. If we chose to remove deny we can assume all acls to >>>>>>>be >>>>>>>of >>>>>>> >>>>>allow >>>>>>> >>>>> >> type and remove the permissionType field completely. >>>>>>> >>>>> >> >>>>>>> >>>>> >> Thanks >>>>>>> >>>>> >> Parth >>>>>>> >>>>> >> >>>>>>> >>>>> >> On 4/20/15, 6:12 PM, "Gwen Shapira" >>>>>>> >>>>><gshap...@cloudera.com<mailto:gshap...@cloudera.com>> wrote: >>>>>>> >>>>> >> >>>>>>> >>>>> >> >I think thats how its done in pretty much any system I >>>>>>>can >>>>>>>think >>>>>>> >>>>>of. >>>>>>> >>>>> >> > >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>>-- >>>>>>Jeff Holoman >>>>>>Systems Engineer >>>>> >>>> >>