Can we get the info on targeted release dates for 0.8.2 release and 0.9 release for our planning purposes?
Thanks. Raja. On Wed, Jul 30, 2014 at 7:27 PM, Joe Stein <joe.st...@stealth.ly> wrote: > The 0.8.2 release will not have the patch inside of it. Trunk already has > a lot inside of it as a point release. The patch also doesn't account for > all of the requirements that all of the stakeholders need/want for the > feature. Instead of releasing something that is useful but only for some > it is better to spend the time to get it right for everyone. We are going > to have it in the 0.9 release (possibly also with authorization, encryption > and more of the security features too) then. > > What we will do is keep the patch rebased against trunk and then then 0.8.2 > branch (once we get to that point) so that folks can apply it to the 0.8.2 > release and do a build from src. When we get to that I can create a write > or something if folks find problems doing it. > > /******************************************* > Joe Stein > Founder, Principal Consultant > Big Data Open Source Security LLC > http://www.stealth.ly > Twitter: @allthingshadoop <http://www.twitter.com/allthingshadoop> > ********************************************/ > > > On Wed, Jul 30, 2014 at 7:10 PM, Calvin Lei <ckp...@gmail.com> wrote: > > > yeah i just saw that. Looking forward to the prod release of 0.8.2 > > > > > > On Wed, Jul 30, 2014 at 11:01 AM, Rajasekar Elango < > rela...@salesforce.com > > > > > wrote: > > > > > We implemented security features on older snapshot version of 0.8 > kafka. > > > But Joe Stein's organization rebased it to latest version of kafka > > > available at https://github.com/stealthly/kafka/tree/v0.8.2_KAFKA-1477 > . > > > > > > Thanks, > > > Raja. > > > > > > > > > On Tue, Jul 29, 2014 at 10:54 PM, Calvin Lei <ckp...@gmail.com> wrote: > > > > > > > Raja, > > > > Which Kafka version is your security enhancement based on? > > > > > > > > thanks, > > > > Cal > > > > > > > > > > > > On Wed, Jul 23, 2014 at 5:01 PM, Chris Neal <cwn...@gmail.com> > wrote: > > > > > > > > > Pramod, > > > > > > > > > > I got that same error when following the configuration from Raja's > > > > > presentation earlier in this thread. If you'll notice the usage > for > > > the > > > > > console_producer.sh, it is slightly different, which is also > slightly > > > > > different than the scala code for the ConsoleProducer. :) > > > > > > > > > > When I changed this: > > > > > > > > > > bin/kafka-console-producer.sh --broker-list n5:9092:true --topic > test > > > > > > > > > > to this: > > > > > > > > > > bin/kafka-console-producer.sh --broker-list n5:9092 --secure > > > > > --client.security.file config/client.security.properties --topic > test > > > > > > > > > > I was able to push messages to the topic, although I got a WARN > about > > > the > > > > > property "topic" not being valid, even though it is required. > > > > > > > > > > Also, the Producer reported this warning to me: > > > > > > > > > > [2014-07-23 20:45:24,509] WARN Attempt to reinitialize auth context > > > > > (kafka.network.security.SecureAuth$) > > > > > > > > > > and the broker gave me this: > > > > > [2014-07-23 20:45:24,114] INFO begin ssl handshake for > > > > > n5.example.com/192.168.1.144:48817//192.168.1.144:9092 > > > > > (kafka.network.security.SSLSocketChannel) > > > > > [2014-07-23 20:45:24,374] INFO finished ssl handshake for > > > > > n5.example.com/192.168.1.144:48817//192.168.1.144:9092 > > > > > (kafka.network.security.SSLSocketChannel) > > > > > [2014-07-23 20:45:24,493] INFO Closing socket connection to > > > > > n5.example.com/192.168.1.144. (kafka.network.Processor) > > > > > [2014-07-23 20:45:24,555] INFO begin ssl handshake for > > > > > n5.example.com/192.168.1.144:48818//192.168.1.144:9092 > > > > > (kafka.network.security.SSLSocketChannel) > > > > > [2014-07-23 20:45:24,566] INFO finished ssl handshake for > > > > > n5.example.com/192.168.1.144:48818//192.168.1.144:9092 > > > > > (kafka.network.security.SSLSocketChannel) > > > > > > > > > > It's like it did the SSL piece twice :) > > > > > > > > > > Subsequent puts to the topic did not exhibit this behavior though: > > > > > > > > > > root@n5[937]:~/kafka_2.10-0-8-2-0.1.0.0> > > bin/kafka-console-producer.sh > > > > > --broker-list n5:9092 --secure --client.security.file > > > > > config/client.security.properties --topic test > > > > > [2014-07-23 20:45:17,530] WARN Property topic is not valid > > > > > (kafka.utils.VerifiableProperties) > > > > > 1 > > > > > [2014-07-23 20:45:24,509] WARN Attempt to reinitialize auth context > > > > > (kafka.network.security.SecureAuth$) > > > > > 2 > > > > > 3 > > > > > 4 > > > > > > > > > > Consuming worked with these options: > > > > > > > > > > root@n5[918]:~/kafka_2.10-0-8-2-0.1.0.0> > > bin/kafka-console-consumer.sh > > > > > --topic test --zookeeper n5:2181 --from-beginning > > > --security.config.file > > > > > config/client.security.properties > > > > > 1 > > > > > 2 > > > > > 3 > > > > > 4 > > > > > ^CConsumed 5 messages > > > > > > > > > > I hope that helps! > > > > > Chris > > > > > > > > > > > > > > > On Tue, Jul 22, 2014 at 2:10 PM, Pramod Deshmukh < > dpram...@gmail.com > > > > > > > > wrote: > > > > > > > > > > > Anyone getting this issue. Is it something related to environment > > or > > > it > > > > > is > > > > > > the code. Producer works fine when run with secure=false (no > > > security) > > > > > > mode. > > > > > > > > > > > > > > > > > > pdeshmukh$ bin/kafka-console-producer.sh --broker-list > > > > > localhost:9092:true > > > > > > --topic secureTopic > > > > > > > > > > > > [2014-07-18 13:12:29,817] WARN Property topic is not valid > > > > > > (kafka.utils.VerifiableProperties) > > > > > > > > > > > > Hare Krishna > > > > > > > > > > > > [2014-07-18 13:12:45,256] WARN Fetching topic metadata with > > > correlation > > > > > id > > > > > > 0 for topics [Set(secureTopic)] from broker > > > > > > [id:0,host:localhost,port:9092,secure:true] failed > > > > > > (kafka.client.ClientUtils$) > > > > > > > > > > > > java.io.EOFException: Received -1 when reading from channel, > socket > > > has > > > > > > likely been closed. > > > > > > > > > > > > at kafka.utils.Utils$.read(Utils.scala:381) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:67) > > > > > > > > > > > > at > > kafka.network.Receive$class.readCompletely(Transmission.scala:56) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29) > > > > > > > > > > > > at > kafka.network.BlockingChannel.receive(BlockingChannel.scala:102) > > > > > > > > > > > > at > kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:79) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:76) > > > > > > > > > > > > at kafka.producer.SyncProducer.send(SyncProducer.scala:117) > > > > > > > > > > > > at > > kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler$$anonfun$handle$1.apply$mcV$sp(DefaultEventHandler.scala:67) > > > > > > > > > > > > at kafka.utils.Utils$.swallow(Utils.scala:172) > > > > > > > > > > > > at kafka.utils.Logging$class.swallowError(Logging.scala:106) > > > > > > > > > > > > at kafka.utils.Utils$.swallowError(Utils.scala:45) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:67) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) > > > > > > > > > > > > at scala.collection.immutable.Stream.foreach(Stream.scala:526) > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) > > > > > > > > > > > > at > > > > > > > > > kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > > > > > > > > > > > > > > > > > > On Fri, Jul 18, 2014 at 1:20 PM, Pramod Deshmukh < > > dpram...@gmail.com > > > > > > > > > > wrote: > > > > > > > > > > > > > Thanks Joe, I don't see any Out of memory error. Now I get > > > exception > > > > > when > > > > > > > Producer fetches metadata for a topic > > > > > > > > > > > > > > Here is how I created the topic and run producer > > > > > > > > > > > > > > pdeshmukh$ bin/kafka-topics.sh --create --zookeeper > > localhost:2181 > > > > > > > --replication-factor 1 --partitions 1 --topic secureTopic > > > > > > > Created topic "secureTopic". > > > > > > > > > > > > > > pdeshmukh$ bin/kafka-topics.sh --list --zookeeper > localhost:2181 > > > > > > > > > > > > > > secure.test > > > > > > > > > > > > > > secureTopic > > > > > > > > > > > > > > >> Run producer, tried both localhost:9092:true and > > localhost:9092 > > > > > > > > > > > > > > pdeshmukh$ bin/kafka-console-producer.sh --broker-list > > > > > > localhost:9092:true > > > > > > > --topic secureTopic > > > > > > > > > > > > > > [2014-07-18 13:12:29,817] WARN Property topic is not valid > > > > > > > (kafka.utils.VerifiableProperties) > > > > > > > > > > > > > > Hare Krishna > > > > > > > > > > > > > > [2014-07-18 13:12:45,256] WARN Fetching topic metadata with > > > > correlation > > > > > > id > > > > > > > 0 for topics [Set(secureTopic)] from broker > > > > > > > [id:0,host:localhost,port:9092,secure:true] failed > > > > > > > (kafka.client.ClientUtils$) > > > > > > > > > > > > > > java.io.EOFException: Received -1 when reading from channel, > > socket > > > > has > > > > > > > likely been closed. > > > > > > > > > > > > > > at kafka.utils.Utils$.read(Utils.scala:381) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:67) > > > > > > > > > > > > > > at > > > kafka.network.Receive$class.readCompletely(Transmission.scala:56) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29) > > > > > > > > > > > > > > at > > kafka.network.BlockingChannel.receive(BlockingChannel.scala:102) > > > > > > > > > > > > > > at > > kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:79) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:76) > > > > > > > > > > > > > > at kafka.producer.SyncProducer.send(SyncProducer.scala:117) > > > > > > > > > > > > > > at > > > kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler$$anonfun$handle$1.apply$mcV$sp(DefaultEventHandler.scala:67) > > > > > > > > > > > > > > at kafka.utils.Utils$.swallow(Utils.scala:172) > > > > > > > > > > > > > > at kafka.utils.Logging$class.swallowError(Logging.scala:106) > > > > > > > > > > > > > > at kafka.utils.Utils$.swallowError(Utils.scala:45) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:67) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) > > > > > > > > > > > > > > at scala.collection.immutable.Stream.foreach(Stream.scala:526) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) > > > > > > > > > > > > > > at > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > > > > > > > > > > > > > > [2014-07-18 13:12:45,258] ERROR fetching topic metadata for > > topics > > > > > > > [Set(secureTopic)] from broker > > > > > > > [ArrayBuffer(id:0,host:localhost,port:9092,secure:true)] failed > > > > > > > (kafka.utils.Utils$) > > > > > > > > > > > > > > kafka.common.KafkaException: fetching topic metadata for topics > > > > > > > [Set(secureTopic)] from broker > > > > > > > [ArrayBuffer(id:0,host:localhost,port:9092,secure:true)] failed > > > > > > > > > > > > > > at > > > kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:72) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler$$anonfun$handle$1.apply$mcV$sp(DefaultEventHandler.scala:67) > > > > > > > > > > > > > > at kafka.utils.Utils$.swallow(Utils.scala:172) > > > > > > > > > > > > > > at kafka.utils.Logging$class.swallowError(Logging.scala:106) > > > > > > > > > > > > > > at kafka.utils.Utils$.swallowError(Utils.scala:45) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:67) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) > > > > > > > > > > > > > > at scala.collection.immutable.Stream.foreach(Stream.scala:526) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) > > > > > > > > > > > > > > at > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > > > > > > > > > > > > > > Caused by: java.io.EOFException: Received -1 when reading from > > > > channel, > > > > > > > socket has likely been closed. > > > > > > > > > > > > > > at kafka.utils.Utils$.read(Utils.scala:381) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:67) > > > > > > > > > > > > > > at > > > kafka.network.Receive$class.readCompletely(Transmission.scala:56) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29) > > > > > > > > > > > > > > at > > kafka.network.BlockingChannel.receive(BlockingChannel.scala:102) > > > > > > > > > > > > > > at > > kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:79) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:76) > > > > > > > > > > > > > > at kafka.producer.SyncProducer.send(SyncProducer.scala:117) > > > > > > > > > > > > > > at > > > kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58) > > > > > > > > > > > > > > ... 12 more > > > > > > > [2014-07-18 13:12:45,337] WARN Fetching topic metadata with > > > > correlation > > > > > > id > > > > > > > 1 for topics [Set(secureTopic)] from broker > > > > > > > [id:0,host:localhost,port:9092,secure:true] failed > > > > > > > (kafka.client.ClientUtils$) > > > > > > > > > > > > > > 2014-07-18 13:12:46,282] ERROR Failed to send requests for > topics > > > > > > > secureTopic with correlation ids in [0,8] > > > > > > > (kafka.producer.async.DefaultEventHandler) > > > > > > > > > > > > > > [2014-07-18 13:12:46,283] ERROR Error in handling batch of 1 > > events > > > > > > > (kafka.producer.async.ProducerSendThread) > > > > > > > > > > > > > > kafka.common.FailedToSendMessageException: Failed to send > > messages > > > > > after > > > > > > 3 > > > > > > > tries. > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) > > > > > > > > > > > > > > at scala.collection.immutable.Stream.foreach(Stream.scala:526) > > > > > > > > > > > > > > at > > > > > > > > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) > > > > > > > > > > > > > > at > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 18, 2014 at 11:56 AM, Joe Stein < > > joe.st...@stealth.ly> > > > > > > wrote: > > > > > > > > > > > > > >> Hi Pramod, > > > > > > >> > > > > > > >> Can you increase KAFKA_HEAP_OPTS to lets say -Xmx1G in the > > > > > > >> kafka-console-producer.sh to see if that gets you further > along > > > > please > > > > > > in > > > > > > >> your testing? > > > > > > >> > > > > > > >> Thanks! > > > > > > >> > > > > > > >> /******************************************* > > > > > > >> Joe Stein > > > > > > >> Founder, Principal Consultant > > > > > > >> Big Data Open Source Security LLC > > > > > > >> http://www.stealth.ly > > > > > > >> Twitter: @allthingshadoop < > > > http://www.twitter.com/allthingshadoop> > > > > > > >> ********************************************/ > > > > > > >> > > > > > > >> > > > > > > >> On Fri, Jul 18, 2014 at 10:24 AM, Pramod Deshmukh < > > > > dpram...@gmail.com > > > > > > > > > > > > >> wrote: > > > > > > >> > > > > > > >> > Hello Raja/Joe, > > > > > > >> > When I turn on security, i still get out of memory error on > > > > > producer. > > > > > > Is > > > > > > >> > this something to do with keys? Is there any other way I can > > > > connect > > > > > > to > > > > > > >> > broker? > > > > > > >> > > > > > > > >> > *producer log* > > > > > > >> > [2014-07-17 15:38:14,186] ERROR OOME with size 352518400 > > > > > > (kafka.network. > > > > > > >> > BoundedByteBufferReceive) > > > > > > >> > java.lang.OutOfMemoryError: Java heap space > > > > > > >> > > > > > > > >> > *broker log* > > > > > > >> > > > > > > > >> > INFO begin ssl handshake for localhost/ > > > > > > 127.0.0.1:50199//127.0.0.1:9092 > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > On Thu, Jul 17, 2014 at 6:07 PM, Pramod Deshmukh < > > > > > dpram...@gmail.com> > > > > > > >> > wrote: > > > > > > >> > > > > > > > >> > > Correct, I don't see any exceptions when i turn off > > security. > > > > > > >> Consumer is > > > > > > >> > > able to consume the message. > > > > > > >> > > > > > > > > >> > > I still see warning for topic property. > > > > > > >> > > > > > > > > >> > > [2014-07-17 18:04:38,360] WARN Property topic is not valid > > > > > > >> > > (kafka.utils.VerifiableProperties) > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > On Thu, Jul 17, 2014 at 5:49 PM, Rajasekar Elango < > > > > > > >> > rela...@salesforce.com> > > > > > > >> > > wrote: > > > > > > >> > > > > > > > > >> > >> Can you try with turning off security to check if this > > error > > > > > > happens > > > > > > >> > only > > > > > > >> > >> on secure mode? > > > > > > >> > >> > > > > > > >> > >> Thanks, > > > > > > >> > >> Raja. > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> On Thu, Jul 17, 2014 at 3:51 PM, Pramod Deshmukh < > > > > > > dpram...@gmail.com > > > > > > >> > > > > > > > >> > >> wrote: > > > > > > >> > >> > > > > > > >> > >> > Thanks Raja, it was helpful > > > > > > >> > >> > > > > > > > >> > >> > Now I am able to start zookeeper and broker in secure > > mode > > > > > ready > > > > > > >> for > > > > > > >> > SSL > > > > > > >> > >> > handshake. I get *java.lang.OutOfMemoryError: Java heap > > > > space* > > > > > on > > > > > > >> > >> producer. > > > > > > >> > >> > > > > > > > >> > >> > I using the default configuration and keystore. Is > there > > > > > anything > > > > > > >> > >> missing > > > > > > >> > >> > > > > > > > >> > >> > *Start broker:* > > > > > > >> > >> > > > > > > > >> > >> > *bin/kafka-server-start.sh config/server.properties* > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > *broker.log:* > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,281] INFO zookeeper state changed > > > > > > >> (SyncConnected) > > > > > > >> > >> > (org.I0Itec.zkclient.ZkClient) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,523] INFO Loading log > > 'secure.test-0' > > > > > > >> > >> > (kafka.log.LogManager) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,558] INFO Recovering unflushed > > > segment 0 > > > > > in > > > > > > >> log > > > > > > >> > >> > secure.test-0. (kafka.log.Log) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,571] INFO Completed load of log > > > > > > secure.test-0 > > > > > > >> > with > > > > > > >> > >> log > > > > > > >> > >> > end offset 0 (kafka.log.Log) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,582] INFO Starting log cleanup > with > > a > > > > > period > > > > > > >> of > > > > > > >> > >> 60000 > > > > > > >> > >> > ms. (kafka.log.LogManager) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,587] INFO Starting log flusher > with > > a > > > > > > default > > > > > > >> > >> period > > > > > > >> > >> > of 9223372036854775807 ms. (kafka.log.LogManager) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,614] INFO Initializing secure > > > > > authentication > > > > > > >> > >> > (kafka.network.security.SecureAuth$) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,678] INFO Secure authentication > > > > > > initialization > > > > > > >> > has > > > > > > >> > >> > been successfully completed > > > > > (kafka.network.security.SecureAuth$) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,691] INFO Awaiting socket > > connections > > > on > > > > > > >> > >> 0.0.0.0:9092 > > > > > > >> > >> > . > > > > > > >> > >> > (kafka.network.Acceptor) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,692] INFO [Socket Server on Broker > > 0], > > > > > > Started > > > > > > >> > >> > (kafka.network.SocketServer) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,794] INFO Will not load MX4J, > > > > > mx4j-tools.jar > > > > > > >> is > > > > > > >> > >> not in > > > > > > >> > >> > the classpath (kafka.utils.Mx4jLoader$) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:46,837] INFO 0 successfully elected > as > > > > leader > > > > > > >> > >> > (kafka.server.ZookeeperLeaderElector) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:47,057] INFO Registered broker 0 at > > path > > > > > > >> > >> /brokers/ids/0 > > > > > > >> > >> > with address 10.1.100.130:9092. (kafka.utils.ZkUtils$) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:34:47,059] INFO New leader is 0 > > > > > > >> > >> > > > (kafka.server.ZookeeperLeaderElector$LeaderChangeListener) > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,068] INFO [Kafka Server 0], > started > > > > > > >> > >> > (kafka.server.KafkaServer)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,383] INFO begin ssl handshake for > > > > > > >> > >> > /10.1.100.130:9092//10.1.100.130:51685 > > > > > > >> > >> > <http://10.1.100.130:9092//10.1.100.130:51685> > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,392] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51685//10.1.100.130:9092 > > > > > > >> > >> > < > > http://10.1.100.130/10.1.100.130:51685//10.1.100.130:9092 > > > > > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,465] INFO finished ssl handshake > > for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51685//10.1.100.130:9092 > > > > > > >> > >> > < > > http://10.1.100.130/10.1.100.130:51685//10.1.100.130:9092 > > > > > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,465] INFO finished ssl handshake > > for > > > > > > >> > >> > /10.1.100.130:9092//10.1.100.130:51685 > > > > > > >> > >> > <http://10.1.100.130:9092//10.1.100.130:51685> > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,617] INFO [ReplicaFetcherManager > on > > > > > broker > > > > > > 0] > > > > > > >> > >> Removed > > > > > > >> > >> > fetcher for partitions > > > (kafka.server.ReplicaFetcherManager)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,627] INFO [ReplicaFetcherManager > on > > > > > broker > > > > > > 0] > > > > > > >> > >> Added > > > > > > >> > >> > fetcher for partitions List() > > > > > > (kafka.server.ReplicaFetcherManager)* > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:34:47,656] INFO [ReplicaFetcherManager > on > > > > > broker > > > > > > 0] > > > > > > >> > >> Removed > > > > > > >> > >> > fetcher for partitions [secure.test,0] > > > > > > >> > >> > (kafka.server.ReplicaFetcherManager)* > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:15,970] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51689//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:16,075] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51690//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:16,434] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51691//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:16,530] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51692//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:16,743] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51693//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:16,834] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51694//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:17,043] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51695//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:17,137] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51696//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:17,342] INFO begin ssl handshake for > > > > > > >> > >> > 10.1.100.130/10.1.100.130:51697//10.1.100.130:9092 > > > > > > >> > >> > (kafka.network.security.SSLSocketChannel) > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > *Start producer* > > > > > > >> > >> > > > > > > > >> > >> > *bin/kafka-console-producer.sh --broker-list > > > > 10.1.100.130:9092 > > > > > > >> :true > > > > > > >> > >> > --topic > > > > > > >> > >> > secure.test* > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > *producer.log:* > > > > > > >> > >> > > > > > > > >> > >> > bin/kafka-console-producer.sh --broker-list > > > > 10.1.100.130:9092 > > > > > > :true > > > > > > >> > >> --topic > > > > > > >> > >> > secure.test > > > > > > >> > >> > > > > > > > >> > >> > [2014-07-17 15:37:46,889] WARN Property topic is not > > valid > > > > > > >> > >> > (kafka.utils.VerifiableProperties) > > > > > > >> > >> > > > > > > > >> > >> > Hello Secure Kafka > > > > > > >> > >> > > > > > > > >> > >> > *[2014-07-17 15:38:14,186] ERROR OOME with size > 352518400 > > > > > > >> > >> > (kafka.network.BoundedByteBufferReceive)* > > > > > > >> > >> > > > > > > > >> > >> > *java.lang.OutOfMemoryError: Java heap space* > > > > > > >> > >> > > > > > > > >> > >> > at > java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57) > > > > > > >> > >> > > > > > > > >> > >> > at java.nio.ByteBuffer.allocate(ByteBuffer.java:331) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.byteBufferAllocate(BoundedByteBufferReceive.scala:80) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:63) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > > kafka.network.Receive$class.readCompletely(Transmission.scala:56) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > kafka.network.BlockingChannel.receive(BlockingChannel.scala:102) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:79) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:76) > > > > > > >> > >> > > > > > > > >> > >> > at > > kafka.producer.SyncProducer.send(SyncProducer.scala:117) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > > kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler$$anonfun$handle$1.apply$mcV$sp(DefaultEventHandler.scala:67) > > > > > > >> > >> > > > > > > > >> > >> > at kafka.utils.Utils$.swallow(Utils.scala:172) > > > > > > >> > >> > > > > > > > >> > >> > at > > > kafka.utils.Logging$class.swallowError(Logging.scala:106) > > > > > > >> > >> > > > > > > > >> > >> > at kafka.utils.Utils$.swallowError(Utils.scala:45) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:67) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > scala.collection.immutable.Stream.foreach(Stream.scala:526) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) > > > > > > >> > >> > > > > > > > >> > >> > at > > > > > > >> > >> > > > > > > >> > > > > > > > > > kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > On Wed, Jul 16, 2014 at 6:07 PM, Rajasekar Elango < > > > > > > >> > >> rela...@salesforce.com> > > > > > > >> > >> > wrote: > > > > > > >> > >> > > > > > > > >> > >> > > Pramod, > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > I presented secure kafka configuration and usage at > > last > > > > meet > > > > > > >> up. So > > > > > > >> > >> hope > > > > > > >> > >> > > this > > > > > > >> > >> > > video recording < > > http://www.ustream.tv/recorded/48396701 > > > > > >would > > > > > > >> > help. > > > > > > >> > >> You > > > > > > >> > >> > > can skip to about 59 min to jump to security talk. > > > > > > >> > >> > > > > > > > > >> > >> > > Thanks, > > > > > > >> > >> > > Raja. > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > On Wed, Jul 16, 2014 at 5:57 PM, Pramod Deshmukh < > > > > > > >> > dpram...@gmail.com> > > > > > > >> > >> > > wrote: > > > > > > >> > >> > > > > > > > > >> > >> > > > Hello Joe, > > > > > > >> > >> > > > > > > > > > >> > >> > > > Is there a configuration or example to test Kafka > > > > security > > > > > > >> piece? > > > > > > >> > >> > > > > > > > > > >> > >> > > > Thanks, > > > > > > >> > >> > > > > > > > > > >> > >> > > > Pramod > > > > > > >> > >> > > > > > > > > > >> > >> > > > > > > > > > >> > >> > > > On Wed, Jul 16, 2014 at 5:20 PM, Pramod Deshmukh < > > > > > > >> > >> dpram...@gmail.com> > > > > > > >> > >> > > > wrote: > > > > > > >> > >> > > > > > > > > > >> > >> > > > > Thanks Joe, > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > This branch works. I was able to proceed. I still > > had > > > > to > > > > > > set > > > > > > >> > scala > > > > > > >> > >> > > > version > > > > > > >> > >> > > > > to 2.9.2 in kafka-run-class.sh. > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > On Wed, Jul 16, 2014 at 3:57 PM, Joe Stein < > > > > > > >> > joe.st...@stealth.ly> > > > > > > >> > >> > > wrote: > > > > > > >> > >> > > > > > > > > > > >> > >> > > > >> That is a very old branch. > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> Here is a more up to date one > > > > > > >> > >> > > > >> > > > > > https://github.com/stealthly/kafka/tree/v0.8.2_KAFKA-1477 > > > > > > >> > >> (needs to > > > > > > >> > >> > > be > > > > > > >> > >> > > > >> updated to latest trunk might have a chance > to-do > > > that > > > > > > next > > > > > > >> > >> week). > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> You should be using gradle now as per the > README. > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> /******************************************* > > > > > > >> > >> > > > >> Joe Stein > > > > > > >> > >> > > > >> Founder, Principal Consultant > > > > > > >> > >> > > > >> Big Data Open Source Security LLC > > > > > > >> > >> > > > >> http://www.stealth.ly > > > > > > >> > >> > > > >> Twitter: @allthingshadoop < > > > > > > >> > >> http://www.twitter.com/allthingshadoop> > > > > > > >> > >> > > > >> ********************************************/ > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> On Wed, Jul 16, 2014 at 3:49 PM, Pramod > Deshmukh < > > > > > > >> > >> > dpram...@gmail.com> > > > > > > >> > >> > > > >> wrote: > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > >> > Thanks Joe for this, > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > I cloned this branch and tried to run > zookeeper > > > but > > > > I > > > > > > get > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Error: Could not find or load main class > > > > > > >> > >> > > > >> > > > org.apache.zookeeper.server.quorum.QuorumPeerMain > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > I see scala version is still set to 2.8.0 > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > if [ -z "$SCALA_VERSION" ]; then > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > SCALA_VERSION=2.8.0 > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > fi > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Then I installed sbt and scala and followed > your > > > > > > >> instructions > > > > > > >> > >> for > > > > > > >> > >> > > > >> different > > > > > > >> > >> > > > >> > scala versions. I was able to bring zookeeper > up > > > but > > > > > > >> brokers > > > > > > >> > >> fail > > > > > > >> > >> > to > > > > > > >> > >> > > > >> start > > > > > > >> > >> > > > >> > with error > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Error: Could not find or load main class > > > kafka.Kafka > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > I think I am doing something wrong. Can you > > please > > > > > help > > > > > > >> me? > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Our current production setup is with 2.8.0 and > > > want > > > > to > > > > > > >> stick > > > > > > >> > to > > > > > > >> > >> > it. > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Thanks, > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > Pramod > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > On Tue, Jun 3, 2014 at 3:57 PM, Joe Stein < > > > > > > >> > >> joe.st...@stealth.ly> > > > > > > >> > >> > > > wrote: > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > Hi,I wanted to re-ignite the discussion > around > > > > > Apache > > > > > > >> Kafka > > > > > > >> > >> > > > Security. > > > > > > >> > >> > > > >> > This > > > > > > >> > >> > > > >> > > is a huge bottleneck (non-starter in some > > cases) > > > > > for a > > > > > > >> lot > > > > > > >> > of > > > > > > >> > >> > > > >> > organizations > > > > > > >> > >> > > > >> > > (due to regulatory, compliance and other > > > > > > requirements). > > > > > > >> > Below > > > > > > >> > >> > are > > > > > > >> > >> > > my > > > > > > >> > >> > > > >> > > suggestions for specific changes in Kafka to > > > > > > accommodate > > > > > > >> > >> > security > > > > > > >> > >> > > > >> > > requirements. This comes from what folks > are > > > > doing > > > > > > "in > > > > > > >> the > > > > > > >> > >> > wild" > > > > > > >> > >> > > to > > > > > > >> > >> > > > >> > > workaround and implement security with Kafka > > as > > > it > > > > > is > > > > > > >> today > > > > > > >> > >> and > > > > > > >> > >> > > also > > > > > > >> > >> > > > >> > what I > > > > > > >> > >> > > > >> > > have discovered from organizations about > their > > > > > > >> blockers. It > > > > > > >> > >> also > > > > > > >> > >> > > > >> picks up > > > > > > >> > >> > > > >> > > from the wiki (which I should have time to > > > update > > > > > > later > > > > > > >> in > > > > > > >> > >> the > > > > > > >> > >> > > week > > > > > > >> > >> > > > >> based > > > > > > >> > >> > > > >> > > on the below and feedback from the thread). > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > 1) Transport Layer Security (i.e. SSL) > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > This also includes client authentication in > > > > addition > > > > > > to > > > > > > >> > >> > in-transit > > > > > > >> > >> > > > >> > security > > > > > > >> > >> > > > >> > > layer. This work has been picked up here > > > > > > >> > >> > > > >> > > > > > https://issues.apache.org/jira/browse/KAFKA-1477 > > > > > and > > > > > > do > > > > > > >> > >> > > appreciate > > > > > > >> > >> > > > >> any > > > > > > >> > >> > > > >> > > thoughts, comments, feedback, tomatoes, > > whatever > > > > for > > > > > > >> this > > > > > > >> > >> patch. > > > > > > >> > >> > > It > > > > > > >> > >> > > > >> is a > > > > > > >> > >> > > > >> > > pickup from the fork of the work first done > > here > > > > > > >> > >> > > > >> > > > > > > > https://github.com/relango/kafka/tree/kafka_security. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > 2) Data encryption at rest. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > This is very important and something that > can > > be > > > > > > >> > facilitated > > > > > > >> > >> > > within > > > > > > >> > >> > > > >> the > > > > > > >> > >> > > > >> > > wire protocol. It requires an additional map > > > data > > > > > > >> structure > > > > > > >> > >> for > > > > > > >> > >> > > the > > > > > > >> > >> > > > >> > > "encrypted [data encryption key]". With this > > map > > > > > > >> (either in > > > > > > >> > >> your > > > > > > >> > >> > > > >> object > > > > > > >> > >> > > > >> > or > > > > > > >> > >> > > > >> > > in the wire protocol) you can store the > > > > dynamically > > > > > > >> > generated > > > > > > >> > >> > > > >> symmetric > > > > > > >> > >> > > > >> > key > > > > > > >> > >> > > > >> > > (for each message) and then encrypt the data > > > using > > > > > > that > > > > > > >> > >> > > dynamically > > > > > > >> > >> > > > >> > > generated key. You then encrypt the > > encryption > > > > key > > > > > > >> using > > > > > > >> > >> each > > > > > > >> > >> > > > public > > > > > > >> > >> > > > >> key > > > > > > >> > >> > > > >> > > for whom is expected to be able to decrypt > the > > > > > > >> encryption > > > > > > >> > >> key to > > > > > > >> > >> > > > then > > > > > > >> > >> > > > >> > > decrypt the message. For each public key > > > > encrypted > > > > > > >> > symmetric > > > > > > >> > >> > key > > > > > > >> > >> > > > >> (which > > > > > > >> > >> > > > >> > is > > > > > > >> > >> > > > >> > > now the "encrypted [data encryption key]" > > along > > > > with > > > > > > >> which > > > > > > >> > >> > public > > > > > > >> > >> > > > key > > > > > > >> > >> > > > >> it > > > > > > >> > >> > > > >> > > was encrypted with for (so a map of > > [publicKey] > > > = > > > > > > >> > >> > > > >> > > encryptedDataEncryptionKey) as a chain. > > Other > > > > > > patterns > > > > > > >> > can > > > > > > >> > >> be > > > > > > >> > >> > > > >> > implemented > > > > > > >> > >> > > > >> > > but this is a pretty standard digital > > enveloping > > > > [0] > > > > > > >> > pattern > > > > > > >> > >> > with > > > > > > >> > >> > > > >> only 1 > > > > > > >> > >> > > > >> > > field added. Other patterns should be able > to > > > use > > > > > that > > > > > > >> > field > > > > > > >> > >> > to-do > > > > > > >> > >> > > > >> their > > > > > > >> > >> > > > >> > > implementation too. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > 3) Non-repudiation and long term > > > non-repudiation. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > Non-repudiation is proving data hasn't > > changed. > > > > > This > > > > > > is > > > > > > >> > >> often > > > > > > >> > >> > (if > > > > > > >> > >> > > > not > > > > > > >> > >> > > > >> > > always) done with x509 public certificates > > > > (chained > > > > > > to a > > > > > > >> > >> > > certificate > > > > > > >> > >> > > > >> > > authority). > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > Long term non-repudiation is what happens > when > > > the > > > > > > >> > >> certificates > > > > > > >> > >> > of > > > > > > >> > >> > > > the > > > > > > >> > >> > > > >> > > certificate authority are expired (or > revoked) > > > and > > > > > > >> > everything > > > > > > >> > >> > ever > > > > > > >> > >> > > > >> signed > > > > > > >> > >> > > > >> > > (ever) with that certificate's public key > then > > > > > becomes > > > > > > >> "no > > > > > > >> > >> > longer > > > > > > >> > >> > > > >> > provable > > > > > > >> > >> > > > >> > > as ever being authentic". That is where > > RFC3126 > > > > [1] > > > > > > and > > > > > > >> > >> RFC3161 > > > > > > >> > >> > > [2] > > > > > > >> > >> > > > >> come > > > > > > >> > >> > > > >> > > in (or worm drives [hardware], etc). > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > For either (or both) of these it is an > > operation > > > > of > > > > > > the > > > > > > >> > >> > encryptor > > > > > > >> > >> > > to > > > > > > >> > >> > > > >> > > sign/hash the data (with or without third > > party > > > > > > trusted > > > > > > >> > >> timestap > > > > > > >> > >> > > of > > > > > > >> > >> > > > >> the > > > > > > >> > >> > > > >> > > signing event) and encrypt that with their > own > > > > > private > > > > > > >> key > > > > > > >> > >> and > > > > > > >> > >> > > > >> distribute > > > > > > >> > >> > > > >> > > the results (before and after encrypting if > > > > > required) > > > > > > >> along > > > > > > >> > >> with > > > > > > >> > >> > > > their > > > > > > >> > >> > > > >> > > public key. This structure is a bit more > > complex > > > > but > > > > > > >> > >> feasible, > > > > > > >> > >> > it > > > > > > >> > >> > > > is a > > > > > > >> > >> > > > >> > map > > > > > > >> > >> > > > >> > > of digital signature formats and the chain > of > > > dig > > > > > sig > > > > > > >> > >> > > attestations. > > > > > > >> > >> > > > >> The > > > > > > >> > >> > > > >> > > map's key being the method (i.e. CRC32, > PKCS7 > > > [3], > > > > > > >> > XmlDigSig > > > > > > >> > >> > [4]) > > > > > > >> > >> > > > and > > > > > > >> > >> > > > >> > then > > > > > > >> > >> > > > >> > > a list of map where that key is "purpose" of > > > > > signature > > > > > > >> > (what > > > > > > >> > >> > your > > > > > > >> > >> > > > >> > attesting > > > > > > >> > >> > > > >> > > too). As a sibling field to the list > another > > > > field > > > > > > for > > > > > > >> > "the > > > > > > >> > >> > > > >> attester" as > > > > > > >> > >> > > > >> > > bytes (e.g. their PKCS12 [5] for the map of > > > PKCS7 > > > > > > >> > >> signatures). > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > 4) Authorization > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > We should have a policy of "404" for data, > > > topics, > > > > > > >> > partitions > > > > > > >> > >> > > (etc) > > > > > > >> > >> > > > if > > > > > > >> > >> > > > >> > > authenticated connections do not have > access. > > > In > > > > > > >> "secure > > > > > > >> > >> mode" > > > > > > >> > >> > > any > > > > > > >> > >> > > > >> non > > > > > > >> > >> > > > >> > > authenticated connections should get a "404" > > > type > > > > > > >> message > > > > > > >> > on > > > > > > >> > >> > > > >> everything. > > > > > > >> > >> > > > >> > > Knowing "something is there" is a security > > risk > > > in > > > > > > many > > > > > > >> > uses > > > > > > >> > >> > > cases. > > > > > > >> > >> > > > >> So > > > > > > >> > >> > > > >> > if > > > > > > >> > >> > > > >> > > you don't have access you don't even see it. > > > > Baking > > > > > > >> "that" > > > > > > >> > >> into > > > > > > >> > >> > > > Kafka > > > > > > >> > >> > > > >> > > along with some interface for entitlement > > > (access > > > > > > >> > management) > > > > > > >> > >> > > > systems > > > > > > >> > >> > > > >> > > (pretty standard) is all that I think needs > to > > > be > > > > > done > > > > > > >> to > > > > > > >> > the > > > > > > >> > >> > core > > > > > > >> > >> > > > >> > project. > > > > > > >> > >> > > > >> > > I want to tackle item later in the year > after > > > > > summer > > > > > > >> after > > > > > > >> > >> the > > > > > > >> > >> > > > other > > > > > > >> > >> > > > >> > three > > > > > > >> > >> > > > >> > > are complete. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > I look forward to thoughts on this and > anyone > > > else > > > > > > >> > >> interested in > > > > > > >> > >> > > > >> working > > > > > > >> > >> > > > >> > > with us on these items. > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > [0] > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/what-is-a-digital-envelope.htm > > > > > > >> > >> > > > >> > > [1] http://tools.ietf.org/html/rfc3126 > > > > > > >> > >> > > > >> > > [2] http://tools.ietf.org/html/rfc3161 > > > > > > >> > >> > > > >> > > [3] > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-7-cryptographic-message-syntax-standar.htm > > > > > > >> > >> > > > >> > > [4] > > http://en.wikipedia.org/wiki/XML_Signature > > > > > > >> > >> > > > >> > > [5] http://en.wikipedia.org/wiki/PKCS_12 > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > /******************************************* > > > > > > >> > >> > > > >> > > Joe Stein > > > > > > >> > >> > > > >> > > Founder, Principal Consultant > > > > > > >> > >> > > > >> > > Big Data Open Source Security LLC > > > > > > >> > >> > > > >> > > http://www.stealth.ly > > > > > > >> > >> > > > >> > > Twitter: @allthingshadoop < > > > > > > >> > >> > > http://www.twitter.com/allthingshadoop> > > > > > > >> > >> > > > >> > > > ********************************************/ > > > > > > >> > >> > > > >> > > > > > > > > >> > >> > > > >> > > > > > > > >> > >> > > > >> > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > -- > > > > > > >> > >> > > Thanks, > > > > > > >> > >> > > Raja. > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> -- > > > > > > >> > >> Thanks, > > > > > > >> > >> Raja. > > > > > > >> > >> > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Thanks, > > > Raja. > > > > > > -- Thanks, Raja.