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
>>>>>
>>>>
>>

Reply via email to