Ah, I'm not talking about security by obscurity.

At least in the database world, if you don't have SELECT on a table, you
won't even see it when saying "show tables" because the very fact that the
table exists is privileged. In that case, a denied SELECT attempt will
return "table does not exist", and not "permission denied".
It is simply a question of what the privilege covers.

I was wondering if it is desirable to apply the same model to Kafka.

Gwen

On Thu, Apr 30, 2015 at 3:51 PM, Suresh Srinivas <sur...@hortonworks.com>
wrote:

> 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