Technically I absolutely agree with you, this would indeed create
issues. If we were just talking about this KIP I think I'd argue that
it is not too harsh of a requirement for users to refrain from using
new features until they have fully upgraded their entire cluster. I
think in that case it could have been solved in the release notes -
similarly to the way a binary protocol change is handled.
However looking at the discussion on KIP-290 and thinking ahead to
potential other changes on ACLs it would really just mean putting off
a proper solution which is a versioning system for ACLs makes sense.

At least from the point of view of this KIP versioning should be a
separate KIP as otherwise we don't solve the issue you mentioned above
- not sure about 290..

I thought about this for a little while, would something like the
following make sense?

ACLs are either stored in a separate Zookeeper node or get a version
stored with them (separate node is probably easier). So current ACLs
would default to v0 and post-KIP252 would be an explicit v1 for
example.
Authorizers declare which versions they are compatible with (though
I'd say i  backwards compatibility is what we shoud shoot for) and
load ACLs of those versions.
Introduce a new parameter authorizer.acl.maxversion which controls
which ACLs are loaded by the authorizer - nothing with a version
higher than specified here gets loaded, even if the Authorizer would
be able to.

So the process for a cluster update would be similar to a binary
protocol change, set authorizer.acl.maxversion to new_version - 1.
Upgrade brokers one by one. Once you are done, change/remove parameter
and restart cluster.

I'm sure I missed something, but sound good in principle?

Best regards,
Sönke


On Thu, May 3, 2018 at 8:15 PM, Colin McCabe <co...@cmccabe.xyz> wrote:
> There are still some problems with compatibility here, right?
>
> One example is if we construct a DENY ACL with an IP range and then install 
> it.  If all of our brokers have been upgraded, it will work.  But if there 
> are some that still haven't been upgraded, they will not honor the DENY ACL, 
> possibly causing a security issue.
>
> In general, it seems like we need some kind of versioning system in ACLs to 
> handle these cases.
>
> best,
> Colin
>
> On Thu, May 3, 2018, at 08:11, Sönke Liebau wrote:
>> Hi all,
>>
>> I'd like to readopt this KIP, I got a bit sidetracked by other stuff
>> after posting the initial version and discussion, sorry for that.
>>
>> I've added IPv6 to the KIP, but decided to forego the other scope
>> extensions that I mentioned in my previous mail, as there are other
>> efforts underway in KIP-290 that cover most of the suggestions
>> already.
>>
>> Does anybody have any other objections to starting a vote on this KIP?
>>
>> Regards,
>> Sönke
>>
>> On Fri, Feb 2, 2018 at 5:11 PM, Sönke Liebau <soenke.lie...@opencore.com> 
>> wrote:
>> > Hi Manikumar,
>> >
>> > you are right, 5713 is a bit ambiguous about which fields are considered in
>> > scope, but I agree that wildcards for Ips are not necessary when we have
>> > ranges.
>> >
>> > I am wondering though, if we might want to extend the scope of this KIP a
>> > bit while we are changing acl and authorizer classes anyway.
>> >
>> > After considering this a bit on a flihht with no wifi yesterday I came up
>> > with the following:
>> >
>> > * wildcards or regular expressions for principals, groups and topics
>> > * extend the KafkaPrincipal object to allow adding custom key-value pairs 
>> > in
>> > principalbuilder implementations
>> > * extend SimpleAclAuthorizer and the ACL tools to authorize on these
>> > key/value pairs
>> >
>> > The second and third bullet points would allow easy creation of for example
>> > a principalbuilder that adds groups the user belongs to in the active
>> > directory to its principal, without requiring the user to also extend the
>> > authorizer and create custom ACL storage. This would significantly lower 
>> > the
>> > technical debt incurred by custom authorizer mechanisms I think.
>> >
>> > There are a few issues to hash out of course, but I'd think in general this
>> > should work work nicely and be a step towards meeting corporate
>> > authorization requirements.
>> >
>> > Best regards,
>> > Sönke
>> >
>> > Am 01.02.2018 18:46 schrieb "Manikumar" <manikumar.re...@gmail.com>:
>> >
>> > Hi,
>> >
>> > They are few deployments using IPv6.  It is good to support IPv6 also.
>> >
>> > I think KAFKA-5713 is about adding regular expression support to resource
>> > names (topic. consumer etc..).
>> > Yes, wildcards (*) in hostname doesn't makes sense. Range and subnet
>> > support will give us the flexibility.
>> >
>> > On Thu, Feb 1, 2018 at 5:56 PM, Sönke Liebau <
>> > soenke.lie...@opencore.com.invalid> wrote:
>> >
>> >> Hi Manikumar,
>> >>
>> >> the current proposal indeed leaves out IPv6 addresses, as I was unsure
>> >> whether Kafka fully supports that yet to be honest. But it would be
>> >> fairly easy to add these to the proposal - I'll update it over the
>> >> weekend.
>> >>
>> >> Regarding KAFKA-5713, I simply listed it as related, since it is
>> >> similar in spirit, if not exact wording.  Parts of that issue
>> >> (wildcards in hosts) would be covered by this kip - just in a slightly
>> >> different way. Do we really need wildcard support in IP addresses if
>> >> we can specify ranges and subnets? I considered it, but only came up
>> >> with scenarios that seemed fairly academic to me, like allowing the
>> >> same host from multiple subnets (10.0.*.1) for example.
>> >>
>> >> Allowing wildcards has the potential to make the code more complex,
>> >> depending on how we decide to implement this feature, hance I decided
>> >> to leave wildcards out for now.
>> >>
>> >> What do you think?
>> >>
>> >> Best regards,
>> >> Sönke
>> >>
>> >> On Thu, Feb 1, 2018 at 10:14 AM, Manikumar <manikumar.re...@gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > 1. Do we support IPv6 CIDR/ranges?
>> >> >
>> >> > 2. KAFKA-5713 is mentioned in Related JIRAs section. But there is no
>> >> > mention of wildcard support in the KIP.
>> >> >
>> >> >
>> >> > Thanks,
>> >> >
>> >> > On Thu, Feb 1, 2018 at 4:05 AM, Sönke Liebau <
>> >> > soenke.lie...@opencore.com.invalid> wrote:
>> >> >
>> >> >> Hey everybody,
>> >> >>
>> >> >> following a brief inital discussion a couple of days ago on this list
>> >> >> I'd like to get a discussion going on KIP-252 which would allow
>> >> >> specifying ip ranges and subnets for the -allow-host and --deny-host
>> >> >> parameters of the acl tool.
>> >> >>
>> >> >> The KIP can be found at
>> >> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> >> >> 252+-+Extend+ACLs+to+allow+filtering+based+on+ip+ranges+and+subnets
>> >> >>
>> >> >> Best regards,
>> >> >> Sönke
>> >> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Sönke Liebau
>> >> Partner
>> >> Tel. +49 179 7940878
>> >> OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany
>> >>
>> >
>> >
>>
>>
>>
>> --
>> Sönke Liebau
>> Partner
>> Tel. +49 179 7940878
>> OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany



-- 
Sönke Liebau
Partner
Tel. +49 179 7940878
OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany

Reply via email to