Hi Aditya,

Thank you for the review. When *quota.type=user*, quotas are based on the
user principal which may be an authenticated or unauthenticated user. For
PLAINTEXT, the principal would be "*anonymous*" by default, but can be
overridden by supplying a principal builder. Quotas can be applied to "
*anonymous*". For example, in a cluster that has both PLAINTEXT and SSL,
you can limit the quota for PLAINTEXT by specifying a quota for "*anonymous*".
With PLAINTEXT, you can limit the quota for traffic from an IP address by
setting principal using a custom principal builder and specifying quota for
the principal.

I used "*clients*" for *quota.type* since the term was already used as
ConfigType to set quotas for client-ids in kaka-configs.sh and in the
Zookeeper path. But I understand that clients/users can be confusing. How
about client-id and 'user-principal'?

Regards,

Rajini

On Wed, May 25, 2016 at 6:16 PM, Aditya Auradkar <
aaurad...@linkedin.com.invalid> wrote:

> Hey Rajini -
>
> If the quota.type is set to 'user', what happens to unauthenticated
> clients? They don't supply a principal, so are they essentially
> unthrottled?
>
> This may be a nit, but I prefer 'quota.type' options to be
> 'authenticated-user' and 'client-id' as opposed to 'client' and 'user'. For
> a new user, the options 'client' and 'user' sound essentially the same.
>
> Aditya
>
> On Tue, May 24, 2016 at 5:55 AM, Rajini Sivaram <
> rajinisiva...@googlemail.com> wrote:
>
> > Jun,
> >
> > I have updated the KIP based on your suggestion. Can you take a look?
> >
> > Thank you,
> >
> > Rajini
> >
> > On Tue, May 24, 2016 at 11:20 AM, Rajini Sivaram <
> > rajinisiva...@googlemail.com> wrote:
> >
> > > Jun,
> > >
> > > Thank you for the review. I agree that a simple user principal based
> > quota
> > > is sufficient to allocate broker resources fairly in a multi-user
> system.
> > > Hierarchical quotas proposed in the KIP currently enables clients of a
> > user
> > > to be rate-limited as well. This allows a user to run multiple clients
> > > which don't interfere with each other's quotas. Since there is no clear
> > > requirement to support this at the moment, I am happy to limit the
> scope
> > of
> > > the KIP to a single-level user-based quota. Will update the KIP today.
> > >
> > > Regards,
> > >
> > > Rajini
> > >
> > > On Mon, May 23, 2016 at 5:24 PM, Jun Rao <j...@confluent.io> wrote:
> > >
> > >> Rajini,
> > >>
> > >> Thanks for the KIP. When we first added the quota support, the
> intention
> > >> was to be able to add a quota per application. Since at that time, we
> > >> don't
> > >> have security yet. We essentially simulated users with client-ids. Now
> > >> that
> > >> we do have security. It seems that we just need to have a way to set
> > quota
> > >> at the user level. Setting quota at the combination of users and
> > >> client-ids
> > >> seems more complicated and I am not sure if there is a good use case.
> > >>
> > >> Also, the new config quota.secure.enable seems a bit weird. Would it
> be
> > >> better to add a new config quota.type. It defaults to clientId for
> > >> backward
> > >> compatibility. If one sets it to user, then the default broker level
> > quota
> > >> is for users w/o a customized quota. In this setting, brokers will
> also
> > >> only take quota set at the user level (i.e., quota set at clientId
> level
> > >> will be ignored).
> > >>
> > >> Thanks,
> > >>
> > >> Jun
> > >>
> > >> On Tue, May 3, 2016 at 4:32 AM, Rajini Sivaram <
> > >> rajinisiva...@googlemail.com
> > >> > wrote:
> > >>
> > >> > Ewen,
> > >> >
> > >> > Thank you for the review. I agree that ideally we would have one
> > >> definition
> > >> > of quotas that handles all cases. But I couldn't quite fit all the
> > >> > combinations that are possible today with client-id-based quotas
> into
> > >> the
> > >> > new configuration. I think upgrade path is not bad since quotas are
> > >> > per-broker. You can configure quotas based on the new configuration,
> > set
> > >> > quota.secure.enable=true and restart the broker. Since there is no
> > >> > requirement for both insecure client-id based quotas and secure
> > >> user-based
> > >> > quotas to co-exist in a cluster, isn't that sufficient? The
> > >> implementation
> > >> > does use a unified approach, so if an alternative configuration can
> be
> > >> > defined (perhaps with some acceptable limitations?) which can
> express
> > >> both,
> > >> > it will be easy to implement. Suggestions welcome :-)
> > >> >
> > >> > The cases that the new configuration cannot express, but the old one
> > can
> > >> > are:
> > >> >
> > >> >    1. SSL/SASL with multiple users, same client ids used by multiple
> > >> users,
> > >> >    client-id based quotas where quotas are shared between multiple
> > users
> > >> >    2. Default quotas for client-ids. In the new configuration,
> default
> > >> >    quotas are defined for users and clients with no configured
> > sub-quota
> > >> > share
> > >> >    the user's quota.
> > >> >
> > >> >
> > >> >
> > >> > On Sat, Apr 30, 2016 at 6:21 AM, Ewen Cheslack-Postava <
> > >> e...@confluent.io>
> > >> > wrote:
> > >> >
> > >> > > Rajini,
> > >> > >
> > >> > > I'm admittedly not very familiar with a lot of this code or
> > >> > implementation,
> > >> > > so correct me if I'm making any incorrect assumptions.
> > >> > >
> > >> > > I've only scanned the KIP, but my main concern is the rejection of
> > the
> > >> > > alternative -- unifying client-id and principal quotas. In
> > particular,
> > >> > > doesn't this make an upgrade for brokers using those different
> > >> approaches
> > >> > > difficult since you have to make a hard break between client-id
> and
> > >> > > principal quotas? If people adopt client-id quotas to begin with,
> it
> > >> > seems
> > >> > > like we might not be providing a clean upgrade path.
> > >> > >
> > >> > > As I said, I haven't kept up to date with the details of the
> > security
> > >> and
> > >> > > quota features, but I'd want to make sure we didn't suggest one
> path
> > >> with
> > >> > > 0.9, then add another that we can't provide a clean upgrade path
> to.
> > >> > >
> > >> > > -Ewen
> > >> > >
> > >> > > On Fri, Apr 22, 2016 at 7:22 AM, Rajini Sivaram <
> > >> > > rajinisiva...@googlemail.com> wrote:
> > >> > >
> > >> > > > The PR for KAFKA-3492 (
> https://github.com/apache/kafka/pull/1256)
> > >> > > contains
> > >> > > > the code associated with KIP-55. I will keep it updated during
> the
> > >> > review
> > >> > > > process.
> > >> > > >
> > >> > > > Thanks,
> > >> > > >
> > >> > > > Rajini
> > >> > > >
> > >> > > > On Mon, Apr 18, 2016 at 4:41 PM, Rajini Sivaram <
> > >> > > > rajinisiva...@googlemail.com> wrote:
> > >> > > >
> > >> > > > > Hi All,
> > >> > > > >
> > >> > > > > I have just created KIP-55 to support quotas based on
> > >> authenticated
> > >> > > user
> > >> > > > > principals.
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> >
> > >>
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-55%3A+Secure+Quotas+for+Authenticated+Users
> > >> > > > >
> > >> > > > > Comments and feedback are appreciated.
> > >> > > > >
> > >> > > > > Thank you...
> > >> > > > >
> > >> > > > > Regards,
> > >> > > > >
> > >> > > > > Rajini
> > >> > > > >
> > >> > > >
> > >> > > >
> > >> > > >
> > >> > > > --
> > >> > > > Regards,
> > >> > > >
> > >> > > > Rajini
> > >> > > >
> > >> > >
> > >> > >
> > >> > >
> > >> > > --
> > >> > > Thanks,
> > >> > > Ewen
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Regards,
> > >> >
> > >> > Rajini
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Regards,
> > >
> > > Rajini
> > >
> >
> >
> >
> > --
> > Regards,
> >
> > Rajini
> >
>



-- 
Regards,

Rajini

Reply via email to