On Fri, Dec 27, 2019, at 10:48, Ron Dagostino wrote:
> Hi everyone.  I would like to make the following changes to the KIP.
> 
> MOTIVATION:
> Include a statement that it will be difficult in the short term to
> deprecate direct Zookeeper communication in kafka-configs.{sh, bat} (which
> invoke kafka.admin.ConfigCommand) because bootstrapping a Kafka cluster
> with encrypted passwords in Zookeeper is an explicitly-supported use case;
> therefore it is in scope to be able to securely configure the CLI tools
> that still leverage non-deprecated direct Zookeeper communication for TLS
> (the other 2 tools are kafka-reassign-partitions.{sh, bat} and
> zookeeper-security-migration.sh).

Hi Ron,

Thanks for the KIP.

About deprecations:

* zookeeper-security-migration: clearly, deprecating ZK access in this one 
would not make sense, since it would defeat the whole point of the tool :)

* kafka-reassign-partitions: ZK access should be deprecated here.  KIP-455 
implementation has dragged a bit, but this should get done soon.  Certainly 
before the next release.

* kafka-configs: I think ZK access should be deprecated here as well.  I agree 
there is a super-special bootstrapping case here, but that should have its own 
tool, not use kafka-configs.

I will post a separate KIP for this, though.

> 
> GOALS:
> Support the secure configuration of TLS-encrypted communication between
> Zookeeper and:
>   a) Kafka brokers
>   b) The three CLI tools mentioned above that still support direct,
> non-deprecated communication to Zookeeper
> It is explicitly out-of-scope to deprecate any direct Zookeeper
> communication in CLI tools as part of this KIP; such work will occur in
> future KIPs instead.
> 
> PUBLIC INTERFACES:
> 1) The following new broker configurations will be recognized.
>   zookeeper.client.secure (default value = false, for backwards
> compatibility)
>   zookeeper.clientCnxnSocket
>   zookeeper.ssl.keyStore.location
>   zookeeper.ssl.keyStore.password
>   zookeeper.ssl.trustStore.location
>   zookeeper.ssl.trustStore.password
> It will be an error for any of the last 5 values to be left unspecified if
> zookeeper.client.secure is explicitly set to true.
> 
> 2) In addition, the kafka.security.authorizer.AclAuthorizer class supports
> the ability to connect to a different Zookeeper instance than the one the
> brokers use.  We therefore also add the following optional configs, which
> override the corresponding ones from above when present:
>   authorizer.zookeeper.client.secure
>   authorizer.zookeeper.clientCnxnSocket
>   authorizer.zookeeper.ssl.keyStore.location
>   authorizer.zookeeper.ssl.keyStore.password
>   authorizer.zookeeper.ssl.trustStore.location
>   authorizer.zookeeper.ssl.trustStore.password
> 
> 3) The three CLI tools mentioned above will support a new --zk-tls-config-file
> <String: Zookeeper TLS configuration file path>" option.  The following
> properties will be recognized in that file, and unrecognized properties
> will be ignored to allow the possibility of pointing zk-tls-config-file at
> the broker's config file.
>   zookeeper.client.secure (default value = false)
>   zookeeper.clientCnxnSocket
>   zookeeper.ssl.keyStore.location
>   zookeeper.ssl.keyStore.password
>   zookeeper.ssl.trustStore.location
>   zookeeper.ssl.trustStore.password
> It will be an error for any of the last 5 values to be left unspecified if
> zookeeper.client.secure is explicitly set to true.

Do we really need a --zk-tls-config-file flag?  It seems like this could just 
appear in a configuration file, which all of these tools already accept (I 
think).

best,
Colin


> 
> Ron
> 
> On Mon, Dec 23, 2019 at 3:03 PM Ron Dagostino <rndg...@gmail.com> wrote:
> 
> > Hi everyone.  Let's get this discussion going again now that Kafka 2.4
> > with Zookeeper 3.5.6 is out.
> >
> > First, regarding the KIP number, the other KIP that was using this number
> > moved to KIP 534, so KIP 515 remains the correct number for this
> > discussion.  I've updated the Kafka Improvement Proposal page to list this
> > KIP in the 515 slot, so we're all set there.
> >
> > Regarding the actual issues under discussion, I think there are some
> > things we should clarify.
> >
> > 1) It is possible to use TLS connectivity to Zookeeper from Apache Kafka
> > 2.4 -- the problem is that configuration information has to be passed via
> > system properties as "-D" command line options on the java invocation of
> > the broker, and those are not secure (anyone with access to the box can see
> > the command line used to invoke the broker); the configuration includes
> > sensitive information (e.g. a keystore password), so we need a secure
> > mechanism for passing the configuration values.  I believe the real
> > motivation for this KIP is to harden the configuration mechanism for
> > Zookeeper TLS connectivity.
> >
> > 2) I believe the list of CLI tools that continue to use direct Zookeeper
> > connectivity in a non-deprecated fashion is:
> >   a) zookeeper-security-migration.sh/kafka.admin.ZkSecurityMigrator
> >   b)
> > kafka-reassign-partitions.{sh,bat}/kafka.admin.ReassignPartitionsCommand
> >   c) kafka-configs.{sh, bat}/kafka.admin.ConfigCommand
> >
> > 3) I believe Kafka.admin.ConfigCommand presents a conundrum because it
> > explicitly states in a comment that a supported use case is bootstrapping a
> > Kafka cluster with encrypted passwords in Zookeeper (see
> > https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/admin/ConfigCommand.scala#L65).
> > This means it will be especially difficult to deprecate this particular
> > direct Zookeeper connectivity without a different storage mechanism for
> > dynamic configuration values being available (i.e. the self-managed quorum
> > referred to in KIP-500).
> >
> > I think it would be easier and simpler to harden the Zookeeper TLS
> > configuration in both Kafka and in CLI tools compared to trying to
> > deprecate the direct Zookeeper connectivity in the above 3 CLI tools --
> > especially when ConfigCommand has no obvious short-term path to deprecation.
> >
> > Regarding how to harden the TLS configuration, adding the appropriate
> > configs to Kafka is an obvious choice for the brokers.  Not that these
> > values cannot be dynamically reconfigurable because the values would be
> > required to connect to Zookeeper via TLS in the first place.
> >
> > Regarding how to harden the TLS configuration for the 3 remaining CLI
> > tools, it would be relatively straightforward to add support for a
> > "--zk-tls-config-file <String: Zookeeper TLS configuration system
> > properties file path>" option to each one.
> >
> > Thoughts?
> >
> > Ron
> >
> > On Thu, Sep 12, 2019 at 8:13 AM Pere Urbón Bayes <pere.ur...@gmail.com>
> > wrote:
> >
> >> True, the number is duplicated.
> >>
> >>   do you know how can we get the problem fix? I was not aware, I missed,
> >> sorry the need to add the KIP to the table.
> >>
> >> -- Pere
> >>
> >> Missatge de Jorge Esteban Quilcate Otoya <quilcate.jo...@gmail.com> del
> >> dia
> >> dt., 3 de set. 2019 a les 13:43:
> >>
> >> > Hi Pere,
> >> >
> >> > Have you add your KIP to the list here
> >> >
> >> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
> >> ?
> >> >
> >> > I found the KIP number assigned to another.
> >> >
> >> >
> >> >
> >> > On Mon, Sep 2, 2019 at 2:23 PM Pere Urbón Bayes <pere.ur...@gmail.com>
> >> > wrote:
> >> >
> >> >> Thanks for your time Harsha,
> >> >>    anyone else with comments? looking forward to hearing from you.
> >> >>
> >> >> Stupid question: when do you move from discussion to vote?
> >> >>
> >> >> Missatge de Harsha Chintalapani <ka...@harsha.io> del dia dv., 30
> >> d’ag.
> >> >> 2019 a les 21:59:
> >> >>
> >> >> > Thanks Pere. KIP looks good to me.
> >> >> > -Harsha
> >> >> >
> >> >> >
> >> >> > On Fri, Aug 30, 2019 at 10:05 AM, Pere Urbón Bayes <
> >> >> pere.ur...@gmail.com>
> >> >> > wrote:
> >> >> >
> >> >> >> Not really,
> >> >> >>   my idea is to keep the JAAS parameter, so people don't see major
> >> >> >> changes. But if you pass a properties file, then this takes
> >> precedence
> >> >> over
> >> >> >> the other, with the idea that you can do sasl as well with the
> >> >> properties
> >> >> >> files.
> >> >> >>
> >> >> >> Makes sense?
> >> >> >>
> >> >> >> -- Pere
> >> >> >>
> >> >> >> Missatge de Harsha Chintalapani <ka...@harsha.io> del dia dv., 30
> >> >> d’ag.
> >> >> >> 2019 a les 19:00:
> >> >> >>
> >> >> >>> Hi Pere,
> >> >> >>>           Thanks for the KIP. Enabling SSL for zookeeper for Kafka
> >> >> makes
> >> >> >>> sense.
> >> >> >>> "The changes are planned to be introduced in a compatible way, by
> >> >> >>> keeping the current JAAS variable precedence."
> >> >> >>> Can you elaborate a bit here. If the user configures a JAAS file
> >> with
> >> >> >>> Client section it will take precedence over zookeeper SSL configs?
> >> >> >>>
> >> >> >>> Thanks,
> >> >> >>> Harsha
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>> On Fri, Aug 30, 2019 at 7:50 AM, Pere Urbón Bayes <
> >> >> pere.ur...@gmail.com>
> >> >> >>> wrote:
> >> >> >>>
> >> >> >>>> Hi,
> >> >> >>>> quick question, I saw in another mail that 2.4 release is planned
> >> for
> >> >> >>>> September. I think it would be really awesome to have this for
> >> this
> >> >> >>>> release, do you think we can make it?
> >> >> >>>>
> >> >> >>>> -- Pere
> >> >> >>>>
> >> >> >>>> Missatge de Pere Urbón Bayes <pere.ur...@gmail.com> del dia dj.,
> >> 29
> >> >> >>>> d’ag. 2019 a les 20:10:
> >> >> >>>>
> >> >> >>>> Hi,
> >> >> >>>> this is my first KIP for a change in Apache Kafka, so I'm really
> >> need
> >> >> >>>> to the process. Looking forward to hearing from you and learn the
> >> >> best
> >> >> >>>> ropes here.
> >> >> >>>>
> >> >> >>>> I would like to propose this KIP-515 to enable the
> >> ZookeeperClients
> >> >> to
> >> >> >>>> take full advantage of the TLS communication in the new Zookeeper
> >> >> 3.5.5.
> >> >> >>>> Specially interesting it the Zookeeper Security Migration, that
> >> >> without
> >> >> >>>> this change will not work with TLS, disabling users to use ACLs
> >> when
> >> >> the
> >> >> >>>> Zookeeper cluster use TLS.
> >> >> >>>>
> >> >> >>>> link:
> >> >> >>>>
> >> >> >>>>
> >> >>
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-515%3A+Enable+ZK+client+to+use+the+new+TLS+supported+authentication
> >> >> >>>>
> >> >> >>>> Looking forward to hearing from you on this,
> >> >> >>>>
> >> >> >>>> /cheers
> >> >> >>>>
> >> >> >>>> --
> >> >> >>>> Pere Urbon-Bayes
> >> >> >>>> Software Architect
> >> >> >>>> http://www.purbon.com
> >> >> >>>> https://twitter.com/purbon
> >> >> >>>> https://www.linkedin.com/in/purbon/
> >> >> >>>>
> >> >> >>>> --
> >> >> >>>> Pere Urbon-Bayes
> >> >> >>>> Software Architect
> >> >> >>>> http://www.purbon.com
> >> >> >>>> https://twitter.com/purbon
> >> >> >>>> https://www.linkedin.com/in/purbon/
> >> >> >>>>
> >> >> >>>
> >> >> >>>
> >> >> >>
> >> >> >> --
> >> >> >> Pere Urbon-Bayes
> >> >> >> Software Architect
> >> >> >> http://www.purbon.com
> >> >> >> https://twitter.com/purbon
> >> >> >> https://www.linkedin.com/in/purbon/
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> Pere Urbon-Bayes
> >> >> Software Architect
> >> >> http://www.purbon.com
> >> >> https://twitter.com/purbon
> >> >> https://www.linkedin.com/in/purbon/
> >> >>
> >> >
> >>
> >> --
> >> Pere Urbon-Bayes
> >> Software Architect
> >> http://www.purbon.com
> >> https://twitter.com/purbon
> >> https://www.linkedin.com/in/purbon/
> >>
> >
>

Reply via email to