Comment on AuthorizationException. I think the intent of exception should be to 
capture why a request is rejected. It is important from API perspective to be 
specific to aid debugging. Having a generic or obfuscated exception is not very 
useful. Does someone on getting an exception reach out to an admin to 
understand if a topic exists or it's an authorization issue?

I am not getting the security concern. System must be ensure disallowing the 
access by implementing the security correctly. Not based on security by 
obscurity.

Regards,
Suresh

Sent from phone

_____________________________
From: Gwen Shapira <gshap...@cloudera.com<mailto:gshap...@cloudera.com>>
Sent: Thursday, April 30, 2015 10:14 AM
Subject: Re: [VOTE] KIP-11- Authorization design for kafka security
To: <dev@kafka.apache.org<mailto:dev@kafka.apache.org>>


* Regarding additional authorizers:
Prasad, who is a PMC on Apache Sentry reviewed the design and confirmed
Sentry can integrate with the current APIs. Dapeng Sun, a committer on
Sentry had some concerns about the IP privileges and how we prioritize
privileges - but nothing that prevents Sentry from integrating with the
existing solution, from what I could see. It seems to me that the design is
very generic and adapters can be written for other authorization systems
(after all, you just need to implement setACL, getACL and Authorize - all
pretty basic), although I can't speak for Oracle's Identity Manager
specifically.

* Regarding "AuthorizationException to indicate that an operation was not
authorized": Sorry I missed this in previous reviewed, but now that I look
at it - Many systems intentionally don't return AuthorizationException when
READ privilege is missing, since this already gives too much information
(that the topic exists and that you don't have privileges on it). Instead
they return a variant of "doesn't exist". I'm wondering if this approach is
applicable / desirable for Kafka as well.
Note that this doesn't remove the need for AuthorizationException - I'm
just suggesting a possible refinement on its use.

Gwen



On Thu, Apr 30, 2015 at 9:52 AM, Parth Brahmbhatt <
pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>> wrote:

> Hi Joe, Thanks for taking the time to review.
>
> * All the open issues already have a resolution , I can open a jira for
> each one and add the resolution to it and resolve them immediately if you
> want this for tracking purposes.
> * We will update system tests to verify that the code works. We have
> thorough unit tests for all the new code except for modifications made to
> KafkaAPI as that has way too many dependencies to be mocked which I guess
> is the reason for no existing unit tests.
> * I don’t know if I completely understand the concern. We have talked with
> Ranger team (Don Bosco Durai) so we at least have one custom authorizer
> implementation that has approved this design and they will be able to
> inject their authorization framework with current interfaces. Do you see
> any issue with the design which will prevent anyone from providing a
> custom implementation?
> * Did not understand the concern around wire protocol, we are adding
> AuthorizationException to indicate that an operation was not authorized.
>
> Thanks
> Parth
>
> On 4/30/15, 5:59 AM, "Jun Rao" <j...@confluent.io<mailto:j...@confluent.io>> 
> wrote:
>
> >Joe,
> >
> >Could you elaborate on why we should not store JSON in ZK? So far, all
> >existing ZK data are in JSON.
> >
> >Thanks,
> >
> >Jun
> >
> >On Thu, Apr 30, 2015 at 2:06 AM, Joe Stein 
> ><joe.st...@stealth.ly<mailto:joe.st...@stealth.ly>> wrote:
> >
> >> Hi, sorry I am coming in late to chime back in on this thread and
> >>haven't
> >> been able to make the KIP hangouts the last few weeks. Sorry if any of
> >>this
> >> was brought up already or I missed it.
> >>
> >> I read through the KIP and the thread(s) and a couple of things jumped
> >>out.
> >>
> >>
> >>    - Can we break out the open issues in JIRA (maybe during the hangout)
> >>    that are in the KIP and resolve/flesh those out more?
> >>
> >>
> >>
> >>    - I don't see any updates with the systems test or how we can know
> >>the
> >>    code works.
> >>
> >>
> >>
> >>    - We need some implementation/example/sample that we know can work in
> >>    all different existing entitlement servers and not just ones that
> >>run in
> >>    types of data centers too. I am not saying we should support
> >>everything
> >> but
> >>    if someone had to implement
> >>    https://docs.oracle.com/cd/E19225-01/820-6551/bzafm/index.html with
> >>    Kafka it has to work for them out of the box.
> >>
> >>
> >>
> >>    - We should shy away from storing JSON in Zookeeper. Lets store
> >>bytes in
> >>    Storage.
> >>
> >>
> >>
> >>    - We should spend some time thinking through exceptions in the wire
> >>    protocol maybe as part of this so it can keep moving forward.
> >>
> >>
> >> ~ Joe Stein
> >>
> >> On Tue, Apr 28, 2015 at 3:33 AM, Sun, Dapeng 
> >> <dapeng....@intel.com<mailto:dapeng....@intel.com>>
> >>wrote:
> >>
> >> > Thank you for your reply, Gwen.
> >> >
> >> > >1. Complex rule systems can be difficult to reason about and
> >>therefore
> >> > end up being less secure. The rule "Deny always wins" is very easy to
> >> grasp.
> >> > Yes, I'm agreed with your point: we should not make the rule complex.
> >> >
> >> > >2. We currently don't have any mechanism for specifying IP ranges (or
> >> host
> >> > >ranges) at all. I think its a pretty significant deficiency, but it
> >>does
> >> > mean that we don't need to worry about the issue of blocking a large
> >> range
> >> > while unblocking few servers in the range.
> >> > Support ranges sounds reasonable. If this feature will be in
> >>development
> >> > plan, I also don't think we can put "the best matching acl" and "
> >>Support
> >> > ip ranges" together.
> >> >
> >> > >We have a call tomorrow (Tuesday, April 28) at 3pm PST - to discuss
> >>this
> >> > and other outstanding design issues (not all related to security). If
> >>you
> >> > are interested in joining - let me know and I'll forward you the
> >>invite.
> >> > Thank you, Gwen. I have the invite and I should be at home at that
> >>time.
> >> > But due to network issue, I may can't join the meeting smoothly.
> >> >
> >> > Regards
> >> > Dapeng
> >> >
> >> > -----Original Message-----
> >> > From: Gwen Shapira [ mailto:gshap...@cloudera.com]
> >> > Sent: Tuesday, April 28, 2015 1:31 PM
> >> > To: dev@kafka.apache.org<mailto:dev@kafka.apache.org>
> >> > Subject: Re: [VOTE] KIP-11- Authorization design for kafka security
> >> >
> >> > While I see the advantage of being able to say something like: "deny
> >>user
> >> > X from hosts h1...h200" also "allow user X from host h189", there are
> >>two
> >> > issues here:
> >> >
> >> > 1. Complex rule systems can be difficult to reason about and therefore
> >> end
> >> > up being less secure. The rule "Deny always wins" is very easy to
> >>grasp.
> >> >
> >> > 2. We currently don't have any mechanism for specifying IP ranges (or
> >> host
> >> > ranges) at all. I think its a pretty significant deficiency, but it
> >>does
> >> > mean that we don't need to worry about the issue of blocking a large
> >> range
> >> > while unblocking few servers in the range.
> >> >
> >> > Gwen
> >> >
> >> > P.S
> >> > We have a call tomorrow (Tuesday, April 28) at 3pm PST - to discuss
> >>this
> >> > and other outstanding design issues (not all related to security). If
> >>you
> >> > are interested in joining - let me know and I'll forward you the
> >>invite.
> >> >
> >> > Gwen
> >> >
> >> > On Mon, Apr 27, 2015 at 10:15 PM, Sun, Dapeng 
> >> > <dapeng....@intel.com<mailto:dapeng....@intel.com>>
> >> > wrote:
> >> >
> >> > > Attach the image.
> >> > >
> >> > >
> >> https://raw.githubusercontent.com/sundapeng/attachment/master/kafka-ac
> >> > > l1.png
> >> > >
> >> > > Regards
> >> > > Dapeng
> >> > >
> >> > > From: Sun, Dapeng [ mailto:dapeng....@intel.com]
> >> > > Sent: Tuesday, April 28, 2015 11:44 AM
> >> > > To: dev@kafka.apache.org<mailto:dev@kafka.apache.org>
> >> > > Subject: RE: [VOTE] KIP-11- Authorization design for kafka security
> >> > >
> >> > >
> >> > > Thank you for your rapid reply, Parth.
> >> > >
> >> > >
> >> > >
> >> > > >* I think the wiki already describes the precedence order as Deny
> >> > > >taking
> >> > > precedence over allow when conflicting acls are found
> >> > >
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorizati
> >> > > on+In
> >> > >
> >> > > >terface#KIP-11-AuthorizationInterface-PermissionType
> >> > >
> >> > > Got it, thank you.
> >> > >
> >> > >
> >> > >
> >> > > >* In the first version that I am currently writing there is no
> >>group
> >> > > support. Even when we add it I don't see the need to add a
> >>precedence
> >> > > for evaluation. it does not matter which principal matches as long
> >>as
> >> > >
> >> > > > we have a match.
> >> > >
> >> > >
> >> > >
> >> > > About this part, I think we should choose the best matching acl for
> >> > > authorization, no matter we support group or not.
> >> > >
> >> > >
> >> > >
> >> > > For the case
> >> > >
> >> > >  [cid:image001.png@01D08197.E94BD410]
> >> > >
> >> > >
> >> https://raw.githubusercontent.com/sundapeng/attachment/master/kafka-ac
> >> > > l1.png
> >> > >
> >> > >
> >> > >
> >> > > if 2 Acls are defined, one that deny an operation from all hosts and
> >> > > one that allows the operation from host1, the operation from host1
> >> > > will be denied or allowed?
> >> > >
> >> > > According wiki "Deny will take precedence over Allow in competing
> >> > > acls.", it seems acl_1 will win the competition, but customers'
> >> > > intention may be "allow".
> >> > >
> >> > > I think "deny always take precedence over Allow" is okay, but
> >>"host1
> >> > > -> user1"  >  "host1 "  >  "default" may make sense.
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> > > >* Acl storage is indexed by resource right now because that is the
> >> > > primary lookup id for all authorize operations. Given acls are
> >>cached
> >> > > I don't see the need to optimized the storage layer any further for
> >> > lookup.
> >> > >
> >> > > >* The reason why we have acl with multi everything is to reduce
> >> > > redundancy in acl storage. I am not sure how will we be able to
> >>reduce
> >> > > redundancy if we divide it by using one principal,one host, one
> >> > operation.
> >> > >
> >> > >
> >> > >
> >> > > Yes, I'm also agreed with "Acl storage should be indexed by
> >>resource".
> >> > > Under resource index, it may be better to add index such as hosts
> >>and
> >> > > principals. One option may be one principal, one host, one
> >>operation.
> >> > > Just give your these scenarios for considering.
> >> > >
> >> > >
> >> > >
> >> > > For the case defined in wiki:
> >> > >
> >> > > Acl_1 -> {"user:bob", "user:*"} is allowed to READ from all hosts.
> >> > >
> >> > > Acl_2 -> {"user:bob"} is denied to READ from host1
> >> > >
> >> > > Acl_3 -> {"user:alice", "group:kafka-devs"} is allowed to READ and
> >> > > WRITE from {host1, host2}.
> >> > >
> >> > >
> >> > >
> >> > > For acl_3, if we want to remove alice's WRITE from {host1,host2} and
> >> > > remove alice's READ from host1, user may have following ways to
> >> achieve:
> >> > >
> >> > >
> >> > >
> >> > > 1.Remove the parts of acl_3 directly, I think if we make it divided
> >> > > and hierarchical, this kind of operations could be done directly in
> >> > backend.
> >> > >
> >> > > 2.Remove acl_3, and add new acl {"group:kafka-devs"} is allowed to
> >> > > READ and WRITE from {host1, host2} and {"user:alice" } is allowed to
> >> > > READ from {host2}
> >> > >
> >> > > 3.Add two denied acls,{ user:alice} is denied to WRITE from
> >> > > {host1,host2} and { user:alice} is denied to READ from {host1}
> >> > >
> >> > >
> >> > >
> >> > > All these can achieve this kind of operations, but I think 1 could
> >> > > more directly for user operations. If you think this optimization is
> >> > > not urgent, I'm also agreed.
> >> > >
> >> > >
> >> > >
> >> > > Regards
> >> > >
> >> > > Dapeng
> >> > >
> >> > >
> >> > >
> >> > > -----Original Message-----
> >> > >
> >> > > From: Parth Brahmbhatt [ mailto:pbrahmbh...@hortonworks.com]
> >> > >
> >> > > Sent: Tuesday, April 28, 2015 12:18 AM
> >> > >
> >> > > To: 
> >> > > dev@kafka.apache.org<mailto:dev@kafka.apache.org><mailto:dev@kafka.apache.org>
> >> > >
> >> > > Subject: Re: [VOTE] KIP-11- Authorization design for kafka security
> >> > >
> >> > >
> >> > >
> >> > > Hi Sun, thanks for the comments, my answers are below:
> >> > >
> >> > >
> >> > >
> >> > > * I think the wiki already describes the precedence order as Deny
> >> > > taking precedence over allow when conflicting acls are found
> >> > >
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorizati
> >> > > on+In
> >> > >
> >> > > terface#KIP-11-AuthorizationInterface-PermissionType
> >> > >
> >> > > * In the first version that I am currently writing there is no group
> >> > > support. Even when we add it I don't see the need to add a
> >>precedence
> >> > > for evaluation. it does not matter which principal matches as long
> >>as
> >> > > we have a match.
> >> > >
> >> > > * Acl storage is indexed by resource right now because that is the
> >> > > primary lookup id for all authorize operations. Given acls are
> >>cached
> >> > > I don't see the need to optimized the storage layer any further for
> >> > lookup.
> >> > >
> >> > > * The reason why we have acl with multi everything is to reduce
> >> > > redundancy in acl storage. I am not sure how will we be able to
> >>reduce
> >> > > redundancy if we divide it by using one principal,one host, one
> >> > operation.
> >> > >
> >> > >
> >> > >
> >> > > Thanks
> >> > >
> >> > > Parth
> >> > >
> >> > >
> >> > >
> >> > > On 4/26/15, 8:06 PM, "Sun, Dapeng" 
> >> > > <dapeng....@intel.com<mailto:dapeng....@intel.com><mailto:
> >> > > dapeng....@intel.com<mailto:dapeng....@intel.com>>> wrote:
> >> > >
> >> > >
> >> > >
> >> > > >Hi Parth
> >> > >
> >> > > >
> >> > >
> >> > > >The design looks good, a few minor comments below. Since I just
> >> > > >started
> >> > >
> >> > > >looking into the discussion and many previous discussions I may
> >> > > >missed,
> >> > >
> >> > > >I'm sorry if these comments had be discussed.
> >> > >
> >> > > >
> >> > >
> >> > > >1. About SimpleAclAuthorizer (SimpleAuthorizer):
> >> > >
> >> > > >a. As my understanding, I think there should only one type
> >> > >
> >> > > >privilege(allow/deny) of a topic on a principle, or we make it
> >>deny >
> >> > >
> >> > > >allow.
> >> > >
> >> > > >For example, acl_1 " host1 -> group1-> user1 -> read->allow" and
> >> acl_2 "
> >> > >
> >> > > >host1-> group1 -> user1 ->read->deny", if the two acls are for a
> >>same
> >> > >
> >> > > >topic, it may be hard to understand, do you think it's necessary to
> >> > > >add
> >> > >
> >> > > >some details about this to wiki.
> >> > >
> >> > > >b. And when we do authorize a user on a topic, we may should check
> >> > >
> >> > > >user's user level acl first, then check user's group level acl,
> >> > > >finally
> >> > >
> >> > > >we check the host level and default level acl. do you think it's
> >> > >
> >> > > >necessary we add some contents like these to wiki.
> >> > >
> >> > > >For example, "host1 -> group1-> user1"  >  "host1 -> group1"  >
> >> "host1"
> >> > >
> >> > > >
> >> > >
> >> > > >2.About SimpleAclAuthorizer (Acl Json will be stored in zookeeper)
> >>a.
> >> > >
> >> > > >It may be better to make acl json stored hierarchily. It may be
> >>easy
> >> > > >to
> >> > >
> >> > > >search and do authorize. For example, when we authorize a user, we
> >> > > >only
> >> > >
> >> > > >need user related acls.
> >> > >
> >> > > >b. I found one acl may contains multi-principles, multi-operations
> >> > > >and
> >> > >
> >> > > >multi-hosts, I'm strongly agreed with we provide api like these,
> >>but
> >> > >
> >> > > >the acls stored in zookeeper or memory we may better to separate to
> >> > >
> >> > > >one-principle, one-operation and one host. So we could make sure
> >> > > >there
> >> > >
> >> > > >are not many acls with same meaning and make acl management easily.
> >> > >
> >> > > >
> >> > >
> >> > > >
> >> > >
> >> > > >Regards
> >> > >
> >> > > >Dapeng
> >> > >
> >> > > >
> >> > >
> >> > > >-----Original Message-----
> >> > >
> >> > > >From: Jun Rao [ mailto:j...@confluent.io]
> >> > >
> >> > > >Sent: Monday, April 27, 2015 5:02 AM
> >> > >
> >> > > >To: 
> >> > > >dev@kafka.apache.org<mailto:dev@kafka.apache.org><mailto:dev@kafka.apache.org>
> >> > >
> >> > > >Subject: Re: [VOTE] KIP-11- Authorization design for kafka security
> >> > >
> >> > > >
> >> > >
> >> > > >A few more minor comments.
> >> > >
> >> > > >
> >> > >
> >> > > >100. To make it clear, perhaps we should rename the resource
> >>"group"
> >> > > >to
> >> > >
> >> > > >consumer-group. We can probably make the same change in CLI as well
> >> > > >so
> >> > >
> >> > > >that it's not confused with user group.
> >> > >
> >> > > >
> >> > >
> >> > > >101. Currently, create is only at the cluster level. Should it also
> >> > > >be
> >> > >
> >> > > >at topic level? For example, perhaps it's useful to allow only
> >>user X
> >> > >
> >> > > >to create topic X.
> >> > >
> >> > > >
> >> > >
> >> > > >Thanks,
> >> > >
> >> > > >
> >> > >
> >> > > >Jun
> >> > >
> >> > > >
> >> > >
> >> > > >
> >> > >
> >> > > >On Sun, Apr 26, 2015 at 12:36 AM, Gwen Shapira
> >><gshap...@cloudera.com<mailto:gshap...@cloudera.com>
> >> > > < mailto:gshap...@cloudera.com>>
> >> > >
> >> > > >wrote:
> >> > >
> >> > > >
> >> > >
> >> > > >> Thanks for clarifying, Parth. I think you are taking the right
> >> > >
> >> > > >> approach here.
> >> > >
> >> > > >>
> >> > >
> >> > > >> On Fri, Apr 24, 2015 at 11:46 AM, Parth Brahmbhatt
> >> > >
> >> > > >> <pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com><mailto:pbrahmbh...@hortonworks.com
> >>
> >> > > wrote:
> >> > >
> >> > > >> > Sorry Gwen, completely misunderstood the question :-).
> >> > >
> >> > > >> >
> >> > >
> >> > > >> > * Does everyone have the privilege to create a new Group and
> >>use
> >> > > >> > it
> >> > >
> >> > > >> > to consume from Topics he's already privileged on?
> >> > >
> >> > > >> >         Yes in current proposal. I did not see an API to create
> >> > >
> >> > > >> > group
> >> > >
> >> > > >> but if you
> >> > >
> >> > > >> > have a READ permission on a TOPIC and WRITE permission on that
> >> > >
> >> > > >> > Group you are free to join and consume.
> >> > >
> >> > > >> >
> >> > >
> >> > > >> >
> >> > >
> >> > > >> > * Will the CLI tool be used to manage group membership too?
> >> > >
> >> > > >> >         Yes and I think that means I need to add ―group.
> >>Updating
> >> > >
> >> > > >> > the
> >> > >
> >> > > >> KIP. Thanks
> >> > >
> >> > > >> > for pointing this out.
> >> > >
> >> > > >> >
> >> > >
> >> > > >> > * Groups are kind of ephemeral, right? If all consumers in the
> >> > >
> >> > > >> > group disconnect the group is gone, AFAIK. Do we preserve the
> >> ACLs?
> >> > >
> >> > > >> > Or do we treat the new group as completely new resource? Can we
> >> > >
> >> > > >> > create ACLs before the group exists, in anticipation of it
> >> > > >> > getting
> >> > > created?
> >> > >
> >> > > >> >         I have considered any auto delete and auto create as
> >>out
> >> > > >> > of
> >> > >
> >> > > >> scope for the
> >> > >
> >> > > >> > first release. So Right now I was going with preserving the
> >>acls.
> >> > >
> >> > > >> > Do you see any issues with this? Auto deleting would mean
> >> > >
> >> > > >> > authorizer will now have to get into implementation details of
> >> > >
> >> > > >> > kafka which I was trying to avoid.
> >> > >
> >> > > >> >
> >> > >
> >> > > >> > Thanks
> >> > >
> >> > > >> > Parth
> >> > >
> >> > > >> >
> >> > >
> >> > > >> > On 4/24/15, 11:33 AM, "Gwen Shapira" 
> >> > > >> > <gshap...@cloudera.com<mailto:gshap...@cloudera.com>
> >> <mailto:
> >> > > gshap...@cloudera.com<mailto:gshap...@cloudera.com>>> wrote:
> >> > >
> >> > > >> >
> >> > >
> >> > > >> >>We are not talking about same Groups :)
> >> > >
> >> > > >> >>
> >> > >
> >> > > >> >>I meant, Groups of consumers (which KIP-11 lists as a separate
> >> > >
> >> > > >> >>resource in the Privilege table)
> >> > >
> >> > > >> >>
> >> > >
> >> > > >> >>On Fri, Apr 24, 2015 at 11:31 AM, Parth Brahmbhatt
> >> > >
> >> > > >>
> >>>><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com><mailto:pbrahmbh...@hortonworks.com>>
> >> > > wrote:
> >> > >
> >> > > >> >>> I see Groups as something we can add incrementally in the
> >> > > >> >>> current
> >> > >
> >> > > >> model.
> >> > >
> >> > > >> >>> The acls take principalType: name so groups can be
> >>represented
> >> > > >> >>> as
> >> > >
> >> > > >> group:
> >> > >
> >> > > >> >>> groupName. We are not managing group memberships anywhere in
> >> > >
> >> > > >> >>> kafka and
> >> > >
> >> > > >> I
> >> > >
> >> > > >> >>> don't see the need to do so.
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>> So for a topic1 using the CLI an admin can add an acl to
> >>grant
> >> > >
> >> > > >> >>> access
> >> > >
> >> > > >> to
> >> > >
> >> > > >> >>> group:kafka-test-users.
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>> The authorizer implementation can have a plugin to map
> >> > >
> >> > > >> >>>authenticated user  to groups ( This is how hadoop and storm
> >> > >
> >> > > >> >>>works). The plugin could be  mapping user to linux/ldap/active
> >> > >
> >> > > >> >>>directory groups but that is again upto  the implementation.
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>> What we are offering is an interface that is extensible so
> >> > > >> >>> these
> >> > >
> >> > > >> >>>features  can be added incrementally. I can add support for
> >>this
> >> > >
> >> > > >> >>>in the first  release but don't necessarily see why this would
> >> > > >> >>>be
> >> > >
> >> > > >> >>>absolute necessity.
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>> Thanks
> >> > >
> >> > > >> >>> Parth
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>> On 4/24/15, 11:00 AM, "Gwen Shapira" 
> >> > > >> >>> <gshap...@cloudera.com<mailto:gshap...@cloudera.com>
> >> > <mailto:
> >> > > gshap...@cloudera.com<mailto:gshap...@cloudera.com>>> wrote:
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >>>>Thanks.
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>One more thing I'm missing in the KIP is details on the Group
> >> > >
> >> > > >> >>>>resource (I think we discussed this and it was just not fully
> >> > >
> >> > > >>updated):
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>* Does everyone have the privilege to create a new Group and
> >> > > >> >>>>use
> >> > >
> >> > > >> >>>>it to consume from Topics he's already privileged on?
> >> > >
> >> > > >> >>>>* Will the CLI tool be used to manage group membership too?
> >> > >
> >> > > >> >>>>* Groups are kind of ephemeral, right? If all consumers in
> >>the
> >> > >
> >> > > >> >>>>group disconnect the group is gone, AFAIK. Do we preserve the
> >> > >
> >> > > >> >>>>ACLs? Or do we treat the new group as completely new
> >>resource?
> >> > >
> >> > > >> >>>>Can we create ACLs before the group exists, in anticipation
> >>of
> >> > > >> >>>>it
> >> > >
> >> > > >>getting created?
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>Its all small details, but it will be difficult to implement
> >> > >
> >> > > >> >>>>KIP-11 without knowing the answers :)
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>Gwen
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>
> >> > >
> >> > > >> >>>>On Fri, Apr 24, 2015 at 9:58 AM, Parth Brahmbhatt
> >> > >
> >> > > >>
> >>>>>><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com><mailto: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<mailto:gshap...@cloudera.com>
> >> > > < mailto: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<mailto:pbrahmbh...@hortonworks.com><mailto:pbrahmbhatt@hortonworks.c
> >> > > >> >>>>>>om>>
> >> > > 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+-+Authoriz
> >> > > >> at
> >> > >
> >> > > >> >>>>>>>io
> >> > >
> >> > > >> >>>>>>>n+
> >> > >
> >> > > >> >>>>>>>In
> >> > >
> >> > > >> >>>>>>>
> >> > >
> >> > > >>
> >>>>>>>>>terface#KIP-11-AuthorizationInterface-PublicInterfacesandcla
> >> > > >> >>>>>>>ss
> >> > >
> >> > > >> >>>>>>>e
> >> > >
> >> > > >> >>>>>>>s
> >> > >
> >> > > >> >>>>>>>
> >> > >
> >> > > >> >>>>>>> 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<mailto:gshap...@cloudera.com>
> >> > > < mailto: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<mailto:pbrahmbh...@hortonworks.com><mailto:pbrahmbhatt@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<mailto:pbrahmbh...@hortonworks.com><mailto:
> >> > > pbrahmbh...@hortonworks.com<mailto: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+-+Authori
> >> > >
> >> > > >> >>>>>>>>>>za
> >> > >
> >> > > >> >>>>>>>>>>ti
> >> > >
> >> > > >> >>>>>>>>>>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<mailto:jholo...@cloudera.com><mailto: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<mailto:pbrahmbh...@hortonworks.com><mailto:
> >> > > pbrahmbh...@hortonworks.com<mailto: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<mailto:pbrahmbh...@hortonworks.com><mailto:
> >> > > pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>>>
> >> > >
> >> > > >> >>>>>>>>>>>> wrote:
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >Please see all the available options here
> >> > >
> >> > > >> >>>>>>>>>>>> >
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Autho
> >> > >
> >> > > >> >>>>>>>>>>>>ri
> >> > >
> >> > > >> >>>>>>>>>>>>za
> >> > >
> >> > > >> >>>>>>>>>>>>ti
> >> > >
> >> > > >> >>>>>>>>>>>>on
> >> > >
> >> > > >> >>>>>>>>>>>>+
> >> > >
> >> > > >> >>>>>>>>>>>>I
> >> > >
> >> > > >> >>>>>>>>>>>>
> >>>nterface#KIP-11-AuthorizationInterface-AclManagement(
> >> > > >> >>>>>>>>>>>> >CL
> >> > >
> >> > > >> >>>>>>>>>>>> >I
> >> > >
> >> > > >> >>>>>>>>>>>> >) . 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><mailto:tgraves...@yahoo.com
> >> <mailto:
> >> > > tgraves...@yahoo.com<mailto:tgraves...@yahoo.com>%3cmailto:tgraves...@yahoo.com<http://yahoo.com>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >Reply-To: Tom Graves
> >> > >
> >> > > >> >>>>>>>>>>>><tgraves...@yahoo.com<mailto:tgraves...@yahoo.com><mailto:tgraves...@yahoo.com
> >> <mailto:
> >> > > tgraves...@yahoo.com<mailto:tgraves...@yahoo.com>%3cmailto:tgraves...@yahoo.com<http://yahoo.com>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >Date: Wednesday, April 22, 2015 at 11:02 AM
> >> > >
> >> > > >> >>>>>>>>>>>> >To: Parth Brahmbhatt
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>><pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com><mailto:
> >> > >
> >> > > >> pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com><mailto:pbrahmbh...@hortonworks.com>
> >> > >
> >> > > >> >>>>>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>>,
> >> > >
> >> > > >> >>>>>>>>>>>> >"dev@kafka.apache.org<mailto:dev@kafka.apache.org><mailto:dev@kafka.apache.org
> >> > > >< mailto:dev@kafka.apache.org%3cmailto:dev@kafka.apache.org%3e>"
> >> > >
> >> > > >> >>>>>>>>>>>> ><dev@kafka.apache.org<mailto:dev@kafka.apache.org><mailto:dev@kafka.apache.org
> >> > <mailto:
> >> > > dev@kafka.apache.org<mailto:dev@kafka.apache.org>%3cmailto:dev@kafka.apache.org<http://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><mailto:
> >> > >
> >> > > >> pbrahmbh...@hortonworks.com<mailto: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><mailto:
> >> > >
> >> > > >> tgraves...@yahoo.com.INVAL<mailto:tgraves...@yahoo.com.INVAL><mailto:tgraves...@yahoo.com.INVAL>
> >> > >
> >> > > >> >>>>>>>>>>>>>ID
> >> > >
> >> > > >> >>>>>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> 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><mailto:
> >> > >
> >> > > >> pbrahmbh...@hortonworks.co<mailto:pbrahmbh...@hortonworks.co><mailto:pbrahmbh...@hortonworks.co>
> >> > >
> >> > > >> >>>>>>>>>>>>>>m>
> >> > >
> >> > > >> >>>>>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>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><mailto:gshap...@cloudera.com
> >> > > < mailto:gshap...@cloudera.com%3cmailto: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><mailto:jay.kr...@gmail.com
> >> > <mailto:
> >> > > jay.kr...@gmail.com<mailto:jay.kr...@gmail.com>%3cmailto:jay.kr...@gmail.com<http://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><mailto:pbrahmbhatt@hortonwo
> >> > > >> >>>>>>>>>>>>rk
> >> > > < mailto:pbrahmbh...@hortonworks.com%3cmailto:pbrahmbhatt@hortonwork
> >
> >> > >
> >> > > >> >>>>>>>>>>>>s
> >> > >
> >> > > >> >>>>>>>>>>>>.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><mailto:j...@confluent.io<mailto:
> >> > > j...@confluent.io<mailto:j...@confluent.io>%3cmailto: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><mailto<mailto:
> >> > > pbrahmbh...@hortonworks.com<mailto:pbrahmbh...@hortonworks.com>%3cmailto>:
> >> > >
> >> > > >> pbrahmbh...@hortonworks.com<mailto: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><mailto:gshapira@cloudera.c
> >> > > >> >>>>>>>>>>>> >>>>>om
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>wrote:
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >> >I think thats how its done in pretty much
> >> > > >> >>>>>>>>>>>> >>>>> >> >any
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >> >system
> >> > >
> >> > > >> >>>>>>>>>>>>I
> >> > >
> >> > > >> >>>>>>>>>>>>can
> >> > >
> >> > > >> >>>>>>>>>>>>think
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>>of.
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >> >
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >>>>>
> >> > >
> >> > > >> >>>>>>>>>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >>
> >> > >
> >> > > >> >>>>>>>>>>>> >
> >> > >
> >> > > >> >>>>>>>>>>>> >
> >> > >
> >> > > >> >>>>>>>>>>>> >
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>>>--
> >> > >
> >> > > >> >>>>>>>>>>>Jeff Holoman
> >> > >
> >> > > >> >>>>>>>>>>>Systems Engineer
> >> > >
> >> > > >> >>>>>>>>>>
> >> > >
> >> > > >> >>>>>>>>>
> >> > >
> >> > > >> >>>>>>>
> >> > >
> >> > > >> >>>>>
> >> > >
> >> > > >> >>>
> >> > >
> >> > > >> >
> >> > >
> >> > > >>
> >> > >
> >> > >
> >> > >
> >> >
> >>
>
>


Reply via email to