The vote has passed with 4 binding votes (Gwen, Jun, Jason, me) and 2 non-binding votes (Ted You, Tom Bentley).
Many thanks for the reviews and votes. I will update the KIP page. Regards, Rajini On Tue, Jan 9, 2018 at 11:00 AM, Rajini Sivaram <rajinisiva...@gmail.com> wrote: > > Thank you, Jun! I have updated the KIP. > > If there are no other comments or concerns, I will close the vote later > today. > > Thanks, > > Rajini > > On Mon, Jan 8, 2018 at 10:57 PM, Jun Rao <j...@confluent.io> wrote: > >> Hi, Rajini, >> >> Thanks for the explanation. Then your suggestion sounds good to me. >> >> Jun >> >> On Mon, Jan 8, 2018 at 1:32 PM, Rajini Sivaram <rajinisiva...@gmail.com> >> wrote: >> >> > Hi Jun, >> > >> > No, password.encoder.secret cannot be updated dynamically at the >> moment. >> > Dynamic configs are stored in ZooKeeper and since ZK is not secure, all >> > password configs in ZK are encrypted using password.encoder.secret. We >> > cannot make password.encoder.secret dynamic since it would need another >> > secret to encrypt it for storing in ZK and that secret would need to be >> > static and cannot be rotated. >> > >> > On Mon, Jan 8, 2018 at 6:33 PM, Jun Rao <j...@confluent.io> wrote: >> > >> > > Hi, Rajini, >> > > >> > > Could password.encoder.secret be updated dynamically? If so, each >> broker >> > > will still have access to the old secret when password.encoder.secret >> is >> > > updated. Perhaps that's a simpler way to handle changing secret than >> > > introducing an extra config. >> > > >> > > Thanks, >> > > >> > > Jun >> > > >> > > On Fri, Jan 5, 2018 at 3:09 AM, Rajini Sivaram < >> rajinisiva...@gmail.com> >> > > wrote: >> > > >> > > > Hi Jun, >> > > > >> > > > We are using 2-way encryption. The password configs encoded are >> > > > keystore/truststore passwords and JAAS configuration. We need to be >> > able >> > > to >> > > > extract the actual values for these, so we cannot use 1-way hash. >> So if >> > > we >> > > > have the old secret, we can decrypt and get the original values. >> > > > >> > > > Thank you, >> > > > >> > > > Rajini >> > > > >> > > > On Fri, Jan 5, 2018 at 12:11 AM, Jun Rao <j...@confluent.io> wrote: >> > > > >> > > > > Hi, Rajin, >> > > > > >> > > > > Does providing the old-secret help? My understanding is that the >> > > encoded >> > > > > passwd is the result of a 1-way hash with the secret. So, one >> can't >> > > > decode >> > > > > the passwd with old-secret. If that's the case, one still needs to >> > > > provide >> > > > > the unencrypted paaswd to re-encode with the new secret? >> > > > > >> > > > > Thanks, >> > > > > >> > > > > Jun >> > > > > >> > > > > On Thu, Jan 4, 2018 at 1:28 AM, Rajini Sivaram < >> > > rajinisiva...@gmail.com> >> > > > > wrote: >> > > > > >> > > > > > Hi Jun/Jason, >> > > > > > >> > > > > > I was wondering whether it is worth adding a new property >> (static >> > > > config >> > > > > in >> > > > > > server.properties) to pass in the previous encoder password as >> well >> > > > when >> > > > > > changing encoder password. So you would set: >> > > > > > >> > > > > > - password.encoder.secret=new-password >> > > > > > - password.encoder.old.secret=old-password >> > > > > > >> > > > > > When the broker starts up and loads passwords from ZK, it would >> > check >> > > > if >> > > > > > old-password is being used. If so, it would re-encode all >> passwords >> > > in >> > > > ZK >> > > > > > using new-password and store them back in ZK. If the >> new-password >> > is >> > > > > > already in use in ZK, the old one will be ignored. This needs an >> > > extra >> > > > > > property, but makes it simpler for the user since all other >> > passwords >> > > > can >> > > > > > be used from ZK. >> > > > > > >> > > > > > What do you think? >> > > > > > >> > > > > > >> > > > > > >> > > > > > On Wed, Jan 3, 2018 at 6:01 PM, Rajini Sivaram < >> > > > rajinisiva...@gmail.com> >> > > > > > wrote: >> > > > > > >> > > > > > > Hi Jason, >> > > > > > > >> > > > > > > Thank you for reviewing and voting. >> > > > > > > >> > > > > > > Thanks, I had missed the rename. Have updated the KIP. >> > > > > > > >> > > > > > > The configs can be defined in the static server.properties or >> in >> > > > > > > ZooKeeper. If a ZK config cannot be decoded (or is not >> valid), we >> > > log >> > > > > an >> > > > > > > error and revert to the static config or default. When >> updating >> > the >> > > > > > secret >> > > > > > > used by the encode, we expect all password values to be >> specified >> > > in >> > > > > > > server.properties. And the decoding or sanity check of the >> > password >> > > > in >> > > > > ZK >> > > > > > > would fail with the new secret, so we would use the password >> > values >> > > > > from >> > > > > > > server.properties. Once the broker starts up, the values can >> be >> > > reset >> > > > > in >> > > > > > ZK >> > > > > > > using AdminClient and they will be encoded using the new >> secret. >> > > > > > > >> > > > > > > >> > > > > > > On Wed, Jan 3, 2018 at 5:34 PM, Jason Gustafson < >> > > ja...@confluent.io> >> > > > > > > wrote: >> > > > > > > >> > > > > > >> +1 Thanks for the KIP. One minor nit: I think we changed >> > > > > > >> ConfigSource.TOPIC_CONFIG to ConfigSource.DYNAMIC_TOPIC_CON >> FIG >> > in >> > > > the >> > > > > > PR. >> > > > > > >> >> > > > > > >> As far as updating secrets, I wasn't sure I understand how >> that >> > > will >> > > > > > work. >> > > > > > >> Do the password configs accept multiple values? >> > > > > > >> >> > > > > > >> On Wed, Jan 3, 2018 at 2:58 AM, Rajini Sivaram < >> > > > > rajinisiva...@gmail.com >> > > > > > > >> > > > > > >> wrote: >> > > > > > >> >> > > > > > >> > Hi Jun, >> > > > > > >> > >> > > > > > >> > Thank you for reviewing and voting. >> > > > > > >> > >> > > > > > >> > 50. I have updated the KIP to describe how the secret may >> be >> > > > > changed. >> > > > > > >> All >> > > > > > >> > dynamically configurable passwords and per-broker configs. >> So >> > > the >> > > > > > secret >> > > > > > >> > can be different across brokers and updated using rolling >> > > restart. >> > > > > In >> > > > > > >> order >> > > > > > >> > to update the secret, each broker needs to be restarted >> with >> > an >> > > > > > updated >> > > > > > >> > server.properties which contains the new secret as well as >> the >> > > > > current >> > > > > > >> > values of all the password configs. Admin client can then >> be >> > > used >> > > > to >> > > > > > >> update >> > > > > > >> > the passwords in ZooKeeper that are encrypted using the new >> > > > secret. >> > > > > > >> > >> > > > > > >> > 51. leader.replication.throttled.replicas and >> > > > > > >> > follower.replication.throttled.replicas >> > > > > > >> > are dynamically configurable at the topic level. But there >> are >> > > no >> > > > > > >> defaults >> > > > > > >> > for these at the broker level since they refer to >> partitions >> > of >> > > > the >> > > > > > >> topic. >> > > > > > >> > The rates used for throttling were already configurable at >> the >> > > > > broker >> > > > > > >> > level. >> > > > > > >> > >> > > > > > >> > I made a couple of other changes to the KIP: >> > > > > > >> > >> > > > > > >> > 1. The config names used for encoding passwords are now >> > prefixed >> > > > > with >> > > > > > >> > password.encoder. >> > > > > > >> > Also added key length as a config since this is >> constrained by >> > > the >> > > > > > >> > algorithm which is also configurable. >> > > > > > >> > 2. I moved the update of inter-broker security protocol and >> > > > > > >> > inter-broker sasl mechanism to the follow-on KIP under >> Future >> > > > Work. >> > > > > As >> > > > > > >> part >> > > > > > >> > of the new KIP, we need to add protocol changes to validate >> > that >> > > > all >> > > > > > >> > brokers in the cluster support the new >> > > protocol/mechanism/version >> > > > to >> > > > > > >> avoid >> > > > > > >> > accidental changes before all brokers are updated. >> > > > > > >> > >> > > > > > >> > >> > > > > > >> > On Tue, Jan 2, 2018 at 10:58 PM, Jun Rao <j...@confluent.io >> > >> > > > wrote: >> > > > > > >> > >> > > > > > >> > > Hi, Rajini, >> > > > > > >> > > >> > > > > > >> > > Thank for the KIP. +1. Just a couple of minor comments >> > below. >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > 50. config.secret.*: Could you document how the >> > > > > > encryption/decryption >> > > > > > >> of >> > > > > > >> > > passwd work? In particular, how do we support changing >> > > > > > config.secret? >> > > > > > >> > > >> > > > > > >> > > 51. At the topic level, we also have >> > > > leader.replication.throttled. >> > > > > > >> > replicas >> > > > > > >> > > and follower.replication.throttled.replicas. Should >> they be >> > > > > > >> dynamically >> > > > > > >> > > configurable? >> > > > > > >> > > >> > > > > > >> > > Jun >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > On Tue, Dec 12, 2017 at 9:24 AM, Gwen Shapira < >> > > > g...@confluent.io> >> > > > > > >> wrote: >> > > > > > >> > > >> > > > > > >> > > > +1 (binding). Thank you for leading this, Rajini. >> > > > > > >> > > > >> > > > > > >> > > > On Tue, Dec 12, 2017 at 8:35 AM Tom Bentley < >> > > > > > t.j.bent...@gmail.com> >> > > > > > >> > > wrote: >> > > > > > >> > > > >> > > > > > >> > > > > +1 (nonbinding) >> > > > > > >> > > > > >> > > > > > >> > > > > On 12 December 2017 at 15:34, Ted Yu < >> > yuzhih...@gmail.com >> > > > >> > > > > > wrote: >> > > > > > >> > > > > >> > > > > > >> > > > > > +1 >> > > > > > >> > > > > > >> > > > > > >> > > > > > On Tue, Dec 12, 2017 at 5:44 AM, Rajini Sivaram < >> > > > > > >> > > > rajinisiva...@gmail.com >> > > > > > >> > > > > > >> > > > > > >> > > > > > wrote: >> > > > > > >> > > > > > >> > > > > > >> > > > > > > Since there are no more outstanding comments, I >> > would >> > > > like >> > > > > > to >> > > > > > >> > start >> > > > > > >> > > > > vote >> > > > > > >> > > > > > > for KIP-226: >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > https://cwiki.apache.org/ >> > > confluence/display/KAFKA/KIP- >> > > > > > >> > > > > > > 226+-+Dynamic+Broker+Configuration >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > The KIP enables dynamic update of commonly >> updated >> > > > broker >> > > > > > >> > > > configuration >> > > > > > >> > > > > > > options to avoid expensive restarts. >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > Thank you, >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > Rajini >> > > > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >