SlideShare a Scribd company logo
1 of 35
Download to read offline
Jun Rao
Confluent, Inc
Securing	
  Apache	
  Ka/a	
  	
  
Outline
•  Kafka and security overview
•  Authentication
•  Identify the principal (user) associated with a connection
•  Authorization
•  What permission a principal has
•  Secure Zookeeper
•  Future stuff
What’s Apache Kafka
Distributed, high throughput pub/sub system
Kafka Usage
Security Overview
•  Support since 0.9.0
•  Wire encryption btw client and broker
•  For cross data center mirroring
•  Access control on resources such as topics
•  Enable sharing Kafka clusters
Authentication Overview
•  Broker support multiple ports
•  plain text (no wire encryption/authentication)
•  SSL (for wire encryption/authentication)
•  SASL (for Kerberos authentication)
•  SSL + SASL (SSL for wire encryption, SASL for authentication)
•  Clients choose which port to use
•  need to provide required credentials through configs
Why is SSL useful
•  1-way authentication
•  Secure wire transfer through encryption
•  2-way authentication
•  Broker knows the identity of client
•  Easy to get started
•  Just involve client and server
SSL handshake
Subsequent transfer over SSL
•  Data encrypted with agreed upon cipher suite
•  Encryption overhead
•  Losing zero-copy transfer in consumer
Performance impact with SSL
•  r3.xlarge
•  4 core, 30GB ram, 80GB ssd, moderate network (~90MB/s)
•  Most overhead from encryption
throughput	
  (MB/s)	
   CPU	
  on	
  client	
   CPU	
  on	
  broker	
  
producer	
  (plaintext)	
   83	
   12%	
   30%	
  
producer	
  (SSL)	
   69	
   28%	
   48%	
  
consumer	
  (plaintext)	
   83	
   8%	
   2%	
  
consumer	
  (SSL)	
   69	
   27%	
   24%	
  
Preparing SSL
1.  Generate certificate (X509) in broker key store
2.  Generate certificate authority (CA) for signing
3.  Sign broker certificate with CA
4.  Import signed certificate and CA to broker key store
5.  Import CA to client trust store
6.  2-way authentication: generate client certificate in a similar
way
Configuring SSL
ssl.keystore.location = /var/private/ssl/kafka.server.keystore.jks
ssl.keystore.password = test1234
ssl.key.password = test1234
ssl.truststore.location = /var/private/ssl/kafka.server.truststore.jks
ssl.truststore.password = test1234	
  
Client/Broker	
  
listeners = SSL://host.name:port
security.inter.broker.protocol = SSL
ssl.client.auth = required
security.protocol = SSL
Broker	
  
Client	
  
•  No client code change; just configuration change.
SSL Principal Name
•  By default, the distinguished name of the certificate
•  CN=host1.company.com,OU=organization
unit,O=organization,L=location,ST=state,C=country
•  Can be customized through principal.builder.class
•  Has access to X509Certificate
•  Make setting broker principal and application principal convenient
What is SASL
•  Simple Authentication and Security Layer
•  Challenge/response protocols
•  Server issues challenge and client sends response
•  Continue until server is satisfied
•  Different mechanisms
•  Plain: cleartext username/password
•  Digest MD5
•  GSSAPI: Kerberos
•  Kafka 0.9.0 only supports Kerberos
Why Kerberos
•  Secure single sign-on
•  An organization may provide multiple services
•  User just remember a single Kerberos password to use all services
•  More convenient when there are many users
•  Need Key Distribution Center (KDC)
•  Each service/user need a Kerberos principal in KDC
How Kerberos Works
•  Create service and client
principal in KDC
•  Client authenticate with AS
on startup
•  Client obtain service ticket
from TGS
•  Client authenticate with
service using service ticket
SASL handshake
Client Broker
ConnecHon	
  
Mechanism	
  list	
  
Selected	
  mechanism	
  &	
  sasl	
  data	
  
Evaluate	
  and	
  response	
  
Sasl	
  data	
  
Client	
  authenHcated	
  
Data transfer
•  SASL_PLAINTEXT
•  No wire encryption
•  SASL_SSL
•  Wire encryption over SSL
Preparing Kerberos
•  Create Kafka service principal in KDC
•  Create a keytab for Kafka principal
•  Keytab includes principal and encrypted Kerberos password
•  Allow authentication w/o typing password
•  Create an application principal for client KDC
•  Create a keytab for application principal
Configuring Kerberos
KafkaServer {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/kafka_server.keytab"
principal="kafka/kafka1.hostname.com@EXAMPLE.COM";
};
Broker	
  JAAS	
  file	
  
-Djava.security.auth.login.config=/etc/kafka/
kafka_server_jaas.conf
security.inter.broker.protocol=SASL_PLAINTEXT(SASL_SSL)
sasl.kerberos.service.name=kafka
Broker	
  JVM	
  
Broker	
  config	
  
•  No client code change; just configuration change.
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/kafka_client.keytab"
principal="kafka-client-1@EXAMPLE.COM";
};
Client	
  JAAS	
  file	
  
-Djava.security.auth.login.config=/etc/kafka/
kafka_client_jaas.conf
security.protocol=SASL_PLAINTEXT(SASL_SSL)
sasl.kerberos.service.name=kafka
ClientJVM	
  
Client	
  config	
  
Kerberos principal name
•  Kerberos principal
•  Primary[/Instance]@REALM
•  kafka/kafka1.hostname.com@EXAMPLE.COM
•  kafka-client-1@EXAMPLE.COM
•  Primary extracted as the default principal name
•  Can customize principal name through
sasl.kerberos.principal.to.local.rules
Authentication Caveat
•  Authentication (SSL or SASL) happens once during socket
connection
•  No re-authentication
•  If a certificate needs to be revoked, use authorization to remove
permission
Authorization
•  Control which permission each authenticated principal has
•  Pluggable with a default implementation
ACL
Principal Permission Operation Resource Host
Alice Allow Read Topic:T1 Host1
Alice	
  is	
  Allowed	
  to	
  Read	
  from	
  topic	
  T1	
  from	
  Host1	
  
Operations and Resources
•  Operations
•  Read, Write, Create, Describe, ClusterAction, All
•  Resources
•  Topic, Cluster and ConsumerGroup
Opera;ons	
   Resources	
  
Read,	
  Write,	
  Describe	
  (Read,	
  Write	
  implies	
  
Describe)	
  
Topic	
  
Read	
   ConsumerGroup	
  
Create,	
  ClusterAcHon	
  (communicaHon	
  between	
  
controller	
  and	
  brokers)	
  
Cluster	
  
SimpleAclAuthorizer
•  Out of box authorizer implementation.
•  CLI tool for adding/removing acls
•  ACLs stored in zookeeper and propagated to brokers
asynchronously
•  ACL cache in broker for better performance.
Client	
   Broker	
   Authorizer	
   Zookeeper	
  
configure	
  
Read	
  ACLs	
  
Load	
  Cache	
  
Request	
  
authorize	
  
ACL	
  match	
  
Or	
  Super	
  User?	
  
Allowed/
Denied	
  
Authorizer Flow
Configure broker ACL
•  authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
•  Make Kafka principal super users
•  Or grant ClusterAction and Read all topics to Kafka principal
Configure client ACL
•  Producer
•  Grant Write on topic, Create on cluster (auto creation)
•  Or use --producer option in CLI
bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 
--add --allow-principal User:Bob --producer --topic t1
•  Consumer
•  Grant Read on topic, Read on consumer group
•  Or use --consumer option in CLI
bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 
--add --allow-principal User:Bob --consumer --topic t1 --group group1
Secure Zookeeper
•  Zookeeper stores
•  critical Kafka metadata
•  ACLs
•  Need to prevent untrusted users from modifying
Zookeeper Security Integration
•  ZK supports authentication through SASL
•  Kerberos or Digest MD5
•  Set zookeeper.set.acl to true on every broker
•  Configure ZK user through JAAS config file
•  Each ZK path writable by creator, readable by all
Migrating from non-secure to secure
Kafka
•  Configure brokers with multiple ports
•  listeners=PLAINTEXT://host.name:port,SSL://host.name:port
•  Gradually migrate clients to secure port
•  When done
•  Turn off PLAINTEXT port on brokers
Migrating from non-secure to secure
Zookeeper
•  http://kafka.apache.org/documentation.html#zk_authz_migration
Future work
•  More SASL options: plain password, md5 digest
•  Performance improvement
•  Integrate with admin api
Thank you
Jun Rao | jun@confluent.io | @junrao
Meet Confluent in booth
Confluent University ~ Kafka training ~ confluent.io/training
Download Apache Kafka & Confluent Platform: confluent.io/download

More Related Content

What's hot

Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connectKnoldus Inc.
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?confluent
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafkaconfluent
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overviewconfluent
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin PodvalMartin Podval
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloudconfluent
 
Tuning kafka pipelines
Tuning kafka pipelinesTuning kafka pipelines
Tuning kafka pipelinesSumant Tambe
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planningconfluent
 
Moving Beyond Lambda Architectures with Apache Kudu
Moving Beyond Lambda Architectures with Apache KuduMoving Beyond Lambda Architectures with Apache Kudu
Moving Beyond Lambda Architectures with Apache KuduCloudera, Inc.
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetricconfluent
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayDataWorks Summit
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 

What's hot (20)

Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connect
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafka
 
kafka
kafkakafka
kafka
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloud
 
Tuning kafka pipelines
Tuning kafka pipelinesTuning kafka pipelines
Tuning kafka pipelines
 
Kafka Security
Kafka SecurityKafka Security
Kafka Security
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
 
Moving Beyond Lambda Architectures with Apache Kudu
Moving Beyond Lambda Architectures with Apache KuduMoving Beyond Lambda Architectures with Apache Kudu
Moving Beyond Lambda Architectures with Apache Kudu
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 

Similar to Securing Kafka

Paris FOD meetup - kafka security 101
Paris FOD meetup - kafka security 101Paris FOD meetup - kafka security 101
Paris FOD meetup - kafka security 101Abdelkrim Hadjidj
 
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...confluent
 
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - Trivadis
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - TrivadisTechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - Trivadis
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - TrivadisTrivadis
 
Securing kafka with 500 billion messages a day
Securing kafka with 500 billion messages a daySecuring kafka with 500 billion messages a day
Securing kafka with 500 billion messages a dayYanlin (Thomas) Zhou
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityJean-Paul Azar
 
g4p-Kafka-SebastianZsolt.pdf
g4p-Kafka-SebastianZsolt.pdfg4p-Kafka-SebastianZsolt.pdf
g4p-Kafka-SebastianZsolt.pdfssuser7ce810
 
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultChickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultJeff Horwitz
 
WebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationSimon Haslam
 
Training Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLTraining Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLContinuent
 
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...HostedbyConfluent
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB DeploymentMongoDB
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsFelipe Prado
 
Powering Remote Developers with Amazon Workspaces
Powering Remote Developers with Amazon WorkspacesPowering Remote Developers with Amazon Workspaces
Powering Remote Developers with Amazon WorkspacesAmazon Web Services
 
DockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINXDockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINXKevin Jones
 
Dr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkDr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkpromediakw
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016Colin Charles
 

Similar to Securing Kafka (20)

Paris FOD meetup - kafka security 101
Paris FOD meetup - kafka security 101Paris FOD meetup - kafka security 101
Paris FOD meetup - kafka security 101
 
Kafka Security
Kafka SecurityKafka Security
Kafka Security
 
Apache Kafka Security
Apache Kafka Security Apache Kafka Security
Apache Kafka Security
 
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
 
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - Trivadis
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - TrivadisTechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - Trivadis
TechEvent 2019: Wie sichere ich eigentlich Kafka ab?; Markus Bente - Trivadis
 
Securing kafka with 500 billion messages a day
Securing kafka with 500 billion messages a daySecuring kafka with 500 billion messages a day
Securing kafka with 500 billion messages a day
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 
SSL Everywhere!
SSL Everywhere!SSL Everywhere!
SSL Everywhere!
 
g4p-Kafka-SebastianZsolt.pdf
g4p-Kafka-SebastianZsolt.pdfg4p-Kafka-SebastianZsolt.pdf
g4p-Kafka-SebastianZsolt.pdf
 
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultChickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
 
WebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL Configuration
 
Training Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLTraining Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSL
 
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...
Team Collaboration in Kafka Clusters With Maria Berinde-Tampanariu | Current ...
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB Deployment
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
 
Vault
VaultVault
Vault
 
Powering Remote Developers with Amazon Workspaces
Powering Remote Developers with Amazon WorkspacesPowering Remote Developers with Amazon Workspaces
Powering Remote Developers with Amazon Workspaces
 
DockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINXDockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINX
 
Dr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkDr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talk
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
 

More from confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

More from confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptxNikhil Raut
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsDILIPKUMARMONDAL6
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESNarmatha D
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 

Recently uploaded (20)

Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptx
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teams
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIES
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 

Securing Kafka

  • 1. Jun Rao Confluent, Inc Securing  Apache  Ka/a    
  • 2. Outline •  Kafka and security overview •  Authentication •  Identify the principal (user) associated with a connection •  Authorization •  What permission a principal has •  Secure Zookeeper •  Future stuff
  • 3. What’s Apache Kafka Distributed, high throughput pub/sub system
  • 5. Security Overview •  Support since 0.9.0 •  Wire encryption btw client and broker •  For cross data center mirroring •  Access control on resources such as topics •  Enable sharing Kafka clusters
  • 6. Authentication Overview •  Broker support multiple ports •  plain text (no wire encryption/authentication) •  SSL (for wire encryption/authentication) •  SASL (for Kerberos authentication) •  SSL + SASL (SSL for wire encryption, SASL for authentication) •  Clients choose which port to use •  need to provide required credentials through configs
  • 7. Why is SSL useful •  1-way authentication •  Secure wire transfer through encryption •  2-way authentication •  Broker knows the identity of client •  Easy to get started •  Just involve client and server
  • 9. Subsequent transfer over SSL •  Data encrypted with agreed upon cipher suite •  Encryption overhead •  Losing zero-copy transfer in consumer
  • 10. Performance impact with SSL •  r3.xlarge •  4 core, 30GB ram, 80GB ssd, moderate network (~90MB/s) •  Most overhead from encryption throughput  (MB/s)   CPU  on  client   CPU  on  broker   producer  (plaintext)   83   12%   30%   producer  (SSL)   69   28%   48%   consumer  (plaintext)   83   8%   2%   consumer  (SSL)   69   27%   24%  
  • 11. Preparing SSL 1.  Generate certificate (X509) in broker key store 2.  Generate certificate authority (CA) for signing 3.  Sign broker certificate with CA 4.  Import signed certificate and CA to broker key store 5.  Import CA to client trust store 6.  2-way authentication: generate client certificate in a similar way
  • 12. Configuring SSL ssl.keystore.location = /var/private/ssl/kafka.server.keystore.jks ssl.keystore.password = test1234 ssl.key.password = test1234 ssl.truststore.location = /var/private/ssl/kafka.server.truststore.jks ssl.truststore.password = test1234   Client/Broker   listeners = SSL://host.name:port security.inter.broker.protocol = SSL ssl.client.auth = required security.protocol = SSL Broker   Client   •  No client code change; just configuration change.
  • 13. SSL Principal Name •  By default, the distinguished name of the certificate •  CN=host1.company.com,OU=organization unit,O=organization,L=location,ST=state,C=country •  Can be customized through principal.builder.class •  Has access to X509Certificate •  Make setting broker principal and application principal convenient
  • 14. What is SASL •  Simple Authentication and Security Layer •  Challenge/response protocols •  Server issues challenge and client sends response •  Continue until server is satisfied •  Different mechanisms •  Plain: cleartext username/password •  Digest MD5 •  GSSAPI: Kerberos •  Kafka 0.9.0 only supports Kerberos
  • 15. Why Kerberos •  Secure single sign-on •  An organization may provide multiple services •  User just remember a single Kerberos password to use all services •  More convenient when there are many users •  Need Key Distribution Center (KDC) •  Each service/user need a Kerberos principal in KDC
  • 16. How Kerberos Works •  Create service and client principal in KDC •  Client authenticate with AS on startup •  Client obtain service ticket from TGS •  Client authenticate with service using service ticket
  • 17. SASL handshake Client Broker ConnecHon   Mechanism  list   Selected  mechanism  &  sasl  data   Evaluate  and  response   Sasl  data   Client  authenHcated  
  • 18. Data transfer •  SASL_PLAINTEXT •  No wire encryption •  SASL_SSL •  Wire encryption over SSL
  • 19. Preparing Kerberos •  Create Kafka service principal in KDC •  Create a keytab for Kafka principal •  Keytab includes principal and encrypted Kerberos password •  Allow authentication w/o typing password •  Create an application principal for client KDC •  Create a keytab for application principal
  • 20. Configuring Kerberos KafkaServer { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/etc/security/keytabs/kafka_server.keytab" principal="kafka/kafka1.hostname.com@EXAMPLE.COM"; }; Broker  JAAS  file   -Djava.security.auth.login.config=/etc/kafka/ kafka_server_jaas.conf security.inter.broker.protocol=SASL_PLAINTEXT(SASL_SSL) sasl.kerberos.service.name=kafka Broker  JVM   Broker  config   •  No client code change; just configuration change. KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/etc/security/keytabs/kafka_client.keytab" principal="kafka-client-1@EXAMPLE.COM"; }; Client  JAAS  file   -Djava.security.auth.login.config=/etc/kafka/ kafka_client_jaas.conf security.protocol=SASL_PLAINTEXT(SASL_SSL) sasl.kerberos.service.name=kafka ClientJVM   Client  config  
  • 21. Kerberos principal name •  Kerberos principal •  Primary[/Instance]@REALM •  kafka/kafka1.hostname.com@EXAMPLE.COM •  kafka-client-1@EXAMPLE.COM •  Primary extracted as the default principal name •  Can customize principal name through sasl.kerberos.principal.to.local.rules
  • 22. Authentication Caveat •  Authentication (SSL or SASL) happens once during socket connection •  No re-authentication •  If a certificate needs to be revoked, use authorization to remove permission
  • 23. Authorization •  Control which permission each authenticated principal has •  Pluggable with a default implementation
  • 24. ACL Principal Permission Operation Resource Host Alice Allow Read Topic:T1 Host1 Alice  is  Allowed  to  Read  from  topic  T1  from  Host1  
  • 25. Operations and Resources •  Operations •  Read, Write, Create, Describe, ClusterAction, All •  Resources •  Topic, Cluster and ConsumerGroup Opera;ons   Resources   Read,  Write,  Describe  (Read,  Write  implies   Describe)   Topic   Read   ConsumerGroup   Create,  ClusterAcHon  (communicaHon  between   controller  and  brokers)   Cluster  
  • 26. SimpleAclAuthorizer •  Out of box authorizer implementation. •  CLI tool for adding/removing acls •  ACLs stored in zookeeper and propagated to brokers asynchronously •  ACL cache in broker for better performance.
  • 27. Client   Broker   Authorizer   Zookeeper   configure   Read  ACLs   Load  Cache   Request   authorize   ACL  match   Or  Super  User?   Allowed/ Denied   Authorizer Flow
  • 28. Configure broker ACL •  authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer •  Make Kafka principal super users •  Or grant ClusterAction and Read all topics to Kafka principal
  • 29. Configure client ACL •  Producer •  Grant Write on topic, Create on cluster (auto creation) •  Or use --producer option in CLI bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:Bob --producer --topic t1 •  Consumer •  Grant Read on topic, Read on consumer group •  Or use --consumer option in CLI bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:Bob --consumer --topic t1 --group group1
  • 30. Secure Zookeeper •  Zookeeper stores •  critical Kafka metadata •  ACLs •  Need to prevent untrusted users from modifying
  • 31. Zookeeper Security Integration •  ZK supports authentication through SASL •  Kerberos or Digest MD5 •  Set zookeeper.set.acl to true on every broker •  Configure ZK user through JAAS config file •  Each ZK path writable by creator, readable by all
  • 32. Migrating from non-secure to secure Kafka •  Configure brokers with multiple ports •  listeners=PLAINTEXT://host.name:port,SSL://host.name:port •  Gradually migrate clients to secure port •  When done •  Turn off PLAINTEXT port on brokers
  • 33. Migrating from non-secure to secure Zookeeper •  http://kafka.apache.org/documentation.html#zk_authz_migration
  • 34. Future work •  More SASL options: plain password, md5 digest •  Performance improvement •  Integrate with admin api
  • 35. Thank you Jun Rao | jun@confluent.io | @junrao Meet Confluent in booth Confluent University ~ Kafka training ~ confluent.io/training Download Apache Kafka & Confluent Platform: confluent.io/download