SlideShare a Scribd company logo
Overcoming the Perils of Kafka Secret
Sprawl
Tejal Adsul | Security Engineer | @TejalAdsul
Agenda
Agenda
• Security implications of clear text secrets and secret sprawl
• Key Management Systems
• Kafka Config Provider
Secrets
Authentication
Application/User Secret
External Service
Secrets
Digital Certificates
API keys
Username and Passwords
How do we use secrets in Apache Kafka
Apache Kafka Security 101
Plaintext
Plaintext
Producer
ConsumerPlaintext
B
R
O
K
E
R
B
R
O
K
E
R
Apache Kafka Security 101
Producer ConsumerPlaintext
B
R
O
K
E
R
B
R
O
K
E
R
Plaintext
Plaintext
Apache Kafka Security 101
Producer
ConsumerB
R
O
K
E
R
B
R
O
K
E
R
Network Attacks
Apache Kafka Security 101
Security Goal
Reduce or Minimize Potential Vulnerable Points
ENCRYPTION
Apache Kafka Security 101
Producer B
R
O
K
E
R
Authentication
Apache Kafka Security 101
Producer
B
R
O
K
E
R
Client Authentication
Authentication
Apache Kafka Security 101
Producer
B
R
O
K
E
R
Server Authentication
# list of brokers used for bootstrapping knowledge about the rest of the
cluster
# format: host1:port1,host2:port2 ...
bootstrap.servers=localhost:9092
# specify the compression codec for all data generated: none, gzip, snappy,
lz4, zstd
compression.type=none
#SASL Configuration
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule
required username=”kafka-producer" password=”producer-secret";
Kafka Producer Configuration File
Apache Kafka Security 101
Producer
Kafka Broker Configuration File
Apache Kafka Security 101
B
R
O
K
E
R
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
# The address the socket server listens on. It will get the value returned from
listeners=SASL_SSL://:9092
# SASL Configuration
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule
required username=“admin” password=“admin-secret” 
user_kafka-producer=”producer-secret";
TLS Configuration
Keystore
Truststore
Keystore
Truststore
Apache Kafka Security 101
Producer
B
R
O
K
E
R
Kafka Broker Configuration File
Apache Kafka Security 101
B
R
O
K
E
R
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
# The address the socket server listens on. It will get the value returned from
listeners=SASL_SSL://:9092
# SASL Configuration
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule
required username=“admin” password=“admin-secret” 
user_kafka-producer=”producer-secret";
ssl.keystore.location=/var/private/ssl/kafka.server.keystore.jks
ssl.keystore.password=ZtFCq5EYdcV30GwL
ssl.truststore.location=/var/private/ssl/kafka.server.truststore.jks
ssl.truststore.password=y77VVeQYqC8e8ceB
Security Implications of Clear Text Secrets
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020
Passwords on
Post-its’ Syndrome
Clear text secrets in
Configuration File
Syndrome
ConsumerB
R
O
K
E
R
B
R
O
K
E
R
Producer
ConsumerB
R
O
K
E
R
B
R
O
K
E
R
ConsumerB
R
O
K
E
R
B
R
O
K
E
R
Producer
Secret Sprawl
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Internal
Topic
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Internal
Topic
Logs
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Internal
Topic
Logs
Ansible
Kubernetes
Splunk
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Internal
Topic
Logs
Ansible
Kubernetes
Splunk
Producer
Producer
Consumer
Consumer
B
R
O
K
E
R
Zookeeper
Secret Sprawl
B
R
O
K
E
R
B
R
O
K
E
R
Internal
Topic
Logs
Ansible
Kubernetes
Splunk
KMS
Secrets
Free
Zone
Key Management Systems
Encryption
Audit logs
Rotations and Version Control
Access Control
KMS
KIP-297 KIP-421
KMS
KIP-297 Externalizing Secrets for Connect
Configuration
KIP-297
KIP-297
KIP-297
KIP-297
B
R
O
K
E
R
Config Transformer
KIP-297
Config Transformer
KIP-297
Config Transformer
${ provider [:path] : key }
KIP-297
Config Transformer
${ provider [:path] : key }
KIP-297
Config Transformer
${ provider [:path] : key }
Config Provider
KMS
KIP-297
Config Transformer
${ provider [:path] : key }
Config Provider
KMS
secret
key
Config Provider
KIP-297
databaseSecret$123
Vault Config Provider
Vault
db_password
/var/private/vault
db_password = databaseSecret$123
db_password = ${ vault : /var/private/vault : db_password }
${ vault : /var/private/vault : db_password }
Config Provider
KIP-297
databaseSecret$123databaseSecret$123
Config Transformer Vault Config Provider Vault
{/var/private/vault:db_password} db_password
Config Provider
KIP-297
Configure(params)
Get(Path, keys)
Subscribe(ConfigChangeCallback)
key
secret
KMS
Configure a Configuration Provider
config.providers = vault, file
// Vault Config Provider
config.providers.vault.class = org.vault.configs.GenericVaultConfigProvider
config.providers.vault.param.token = /run/secrets/vault-token
config.providers.vault.param.uri = 168.229.49.188
// File Config Provider
config.providers.file.class = org.apache.configs.FileConfigProvider
KIP-297
B
R
O
K
E
R
KIP-421 Automatically resolve external
configurations.
KIP-421
Configuration
Config Def
Abstract Config
configuration
parsed & validated configuration
Name : SSL_KEYSTORE_PASSWORD
Type: PASSWORD
Importance: High
Default_Value: null
KIP-421
broker.id = 0
security.inter.broker.protocol = SSL
ssl.keystore.location = /var/private/ssl/kafka.server.keystore.jks
ssl.keystore.password = YB3PgSf7M2t3mUo9
B
R
O
K
E
R
KIP-421
broker.id = 0
security.inter.broker.protocol = SSL
ssl.keystore.location = /var/private/ssl/kafka.server.keystore.jks
ssl. keystore.password = ${vault:ssl.keystore.password}
B
R
O
K
E
R
KIP-421
B
R
O
K
E
R
broker.id = 0
security.inter.broker.protocol = SSL
ssl.keystore.password = ${vault:ssl. keystore.password}
config.providers = vault
config.providers.vault.class = com.org.apache.configs.VaultConfigProvider
config.providers.vault.param.token = /run/secrets/vault-token
config.providers.vault.param.uri = 168.229.49.188
KIP-421
Abstract Config
broker.id = 0
security.inter.broker.protocol = SSL
ssl.key.password = ${vault:ssl.keystore.password}
config.providers = vault
config.providers.vault.class = com.org.apache.configs.VaultConfigProvider
config.providers.vault.param.token = /run/secrets/vault-token
config.providers.vault.param.uri = 168.229.49.188
KIP-421
Abstract Config
Vault Config Provider
vault.param.token = /run/secrets/vault-token
vault.param.uri = 168.229.49.188
KIP-421
Abstract Config
broker.id = 0
security.inter.broker.protocol = SSL
ssl.keystore.password = ${vault:ssl.keystore.password}
config.providers = vault
config.providers.vault.class = com.org.apache.configs.VaultConfigProvider
config.providers.vault.param.token = /run/secrets/vault-token
config.providers.vault.param.uri = 168.229.49.188
${}
KIP-421
Abstract Config
ssl.keystore.password = ${vault:ssl.keystore.password}
Config Transformer
KIP-421
Abstract Config
ssl.keystore.password = YB3PgSf7M2t3mUo9
Config Transformer
KIP-421
Abstract Config
ssl.keystore.password = YB3PgSf7M2t3mUo9
broker.id = 0
security.inter.broker.protocol = SSL
Config Def
KIP-421
Abstract Config
ssl.keystore.password = YB3PgSf7M2t3mUo9
broker.id = 0
security.inter.broker.protocol = SSL
Config Def
Securing Passwords in Log File
Config DefConfiguration
TYPE
Recap
1. Select Key Management System
2. Move Secrets to KMS
3. Add the Configuration provider to Kafka
4. Replace the secrets in configuration file
with indirection tuple
ssl.keystore.password = YB3PgSf7M2t3mUo9
ssl.keystore.password = YB3PgSf7M2t3mUo9
Config Transformer
Vault Config
Provider
Vault
ssl.keystore.password ssl.keystore.password
YB3PgSf7M2t3mUo9YB3PgSf7M2t3mUo9
ssl.keystore.password=${vault:ssl.keystore.password}
ssl.keystore.password=YB3PgSf7M2t3mUo9
1
2 3
45
6
7
8
Abstract Config
Config Def
B
R
O
K
E
R
Consumer
Producer
Connect
Stream
Demo
Tejal Adsul
Reference
• Apache Kafka Security 101
• Secret Sprawl
• KIP-297: Externalizing Secrets for Connect Configurations
• KIP-421: Automatically resolve external configurations
• Confluent Secret Protection

More Related Content

PDF
Building Out Your Kafka Developer CDC Ecosystem
PDF
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
PDF
Kafka Pluggable Authorization for Enterprise Security (Anna Kepler, Viasat) K...
PDF
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
PDF
Using Location Data to Showcase Keys, Windows, and Joins in Kafka Streams DSL...
PDF
KSQL - Stream Processing simplified!
PDF
Kafka Security 101 and Real-World Tips
PDF
Writing Blazing Fast, and Production-Ready Kafka Streams apps in less than 30...
Building Out Your Kafka Developer CDC Ecosystem
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Kafka Pluggable Authorization for Enterprise Security (Anna Kepler, Viasat) K...
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
Using Location Data to Showcase Keys, Windows, and Joins in Kafka Streams DSL...
KSQL - Stream Processing simplified!
Kafka Security 101 and Real-World Tips
Writing Blazing Fast, and Production-Ready Kafka Streams apps in less than 30...

What's hot (20)

PDF
KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf...
PPTX
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
PDF
How to build 1000 microservices with Kafka and thrive
PDF
From Zero to Hero with Kafka Connect
PDF
Securing Kafka
PDF
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
PDF
Change Data Capture Pipelines with Debezium and Kafka Streams (Gunnar Morling...
PDF
Kafka Needs No Keeper
PDF
Introducing Kafka's Streams API
PDF
From Newbie to Highly Available, a Successful Kafka Adoption Tale (Jonathan S...
PDF
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
PDF
From bytes to objects: describing your events | Dale Lane and Kate Stanley, IBM
PDF
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
PDF
Making Sense of Your Event-Driven Dataflows (Jorge Esteban Quilcate Otoya, SY...
PDF
Scaling an Event-Driven Architecture with IBM and Confluent | Antony Amanse a...
PPTX
Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...
PDF
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
PDF
Common issues with Apache Kafka® Producer
PDF
Making Kafka Cloud Native | Jay Kreps, Co-Founder & CEO, Confluent
PDF
SFBigAnalytics_20190724: Monitor kafka like a Pro
KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf...
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
How to build 1000 microservices with Kafka and thrive
From Zero to Hero with Kafka Connect
Securing Kafka
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
Change Data Capture Pipelines with Debezium and Kafka Streams (Gunnar Morling...
Kafka Needs No Keeper
Introducing Kafka's Streams API
From Newbie to Highly Available, a Successful Kafka Adoption Tale (Jonathan S...
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
From bytes to objects: describing your events | Dale Lane and Kate Stanley, IBM
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Making Sense of Your Event-Driven Dataflows (Jorge Esteban Quilcate Otoya, SY...
Scaling an Event-Driven Architecture with IBM and Confluent | Antony Amanse a...
Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
Common issues with Apache Kafka® Producer
Making Kafka Cloud Native | Jay Kreps, Co-Founder & CEO, Confluent
SFBigAnalytics_20190724: Monitor kafka like a Pro
Ad

Similar to Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020 (20)

PDF
Paris FOD meetup - kafka security 101
PDF
Technical tips for secure Apache Hadoop cluster #ApacheConAsia #ApacheCon
PPTX
PDF
Kafka 2018 - Securing Kafka the Right Way
PDF
Apache Kafka® Security Overview
PDF
K8 Meetup_ K8s secrets management best practices (Git Guardian).pdf
PDF
When Securing Access to Data is About Life and Death
PPTX
Kafka Security
PDF
Shifting security left simplifying security for k8s open shift environments
PPTX
How to Lock Down Apache Kafka and Keep Your Streams Safe
PPTX
Visualizing Kafka Security
PPTX
Apache Kafka Security
PDF
Secrets Management and Delivery to Kubernetes Pods
PPTX
KMS at Okta - Intermediate Level
PPTX
Securing kafka with 500 billion messages a day
PDF
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
PDF
Overview of secret management solutions and architecture
PPTX
Open Source Security Tools for Big Data
PPTX
Open Source Security Tools for Big Data
PDF
Kubernetes Secrets Management on Production with Demo
Paris FOD meetup - kafka security 101
Technical tips for secure Apache Hadoop cluster #ApacheConAsia #ApacheCon
Kafka 2018 - Securing Kafka the Right Way
Apache Kafka® Security Overview
K8 Meetup_ K8s secrets management best practices (Git Guardian).pdf
When Securing Access to Data is About Life and Death
Kafka Security
Shifting security left simplifying security for k8s open shift environments
How to Lock Down Apache Kafka and Keep Your Streams Safe
Visualizing Kafka Security
Apache Kafka Security
Secrets Management and Delivery to Kubernetes Pods
KMS at Okta - Intermediate Level
Securing kafka with 500 billion messages a day
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Overview of secret management solutions and architecture
Open Source Security Tools for Big Data
Open Source Security Tools for Big Data
Kubernetes Secrets Management on Production with Demo
Ad

More from confluent (20)

PDF
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
PPTX
Webinar Think Right - Shift Left - 19-03-2025.pptx
PDF
Migration, backup and restore made easy using Kannika
PDF
Five Things You Need to Know About Data Streaming in 2025
PDF
Data in Motion Tour Seoul 2024 - Keynote
PDF
Data in Motion Tour Seoul 2024 - Roadmap Demo
PDF
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
PDF
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
PDF
Data in Motion Tour 2024 Riyadh, Saudi Arabia
PDF
Build a Real-Time Decision Support Application for Financial Market Traders w...
PDF
Strumenti e Strategie di Stream Governance con Confluent Platform
PDF
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
PDF
Building Real-Time Gen AI Applications with SingleStore and Confluent
PDF
Unlocking value with event-driven architecture by Confluent
PDF
Il Data Streaming per un’AI real-time di nuova generazione
PDF
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
PDF
Break data silos with real-time connectivity using Confluent Cloud Connectors
PDF
Building API data products on top of your real-time data infrastructure
PDF
Speed Wins: From Kafka to APIs in Minutes
PDF
Evolving Data Governance for the Real-time Streaming and AI Era
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
Webinar Think Right - Shift Left - 19-03-2025.pptx
Migration, backup and restore made easy using Kannika
Five Things You Need to Know About Data Streaming in 2025
Data in Motion Tour Seoul 2024 - Keynote
Data in Motion Tour Seoul 2024 - Roadmap Demo
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
Data in Motion Tour 2024 Riyadh, Saudi Arabia
Build a Real-Time Decision Support Application for Financial Market Traders w...
Strumenti e Strategie di Stream Governance con Confluent Platform
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
Building Real-Time Gen AI Applications with SingleStore and Confluent
Unlocking value with event-driven architecture by Confluent
Il Data Streaming per un’AI real-time di nuova generazione
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Break data silos with real-time connectivity using Confluent Cloud Connectors
Building API data products on top of your real-time data infrastructure
Speed Wins: From Kafka to APIs in Minutes
Evolving Data Governance for the Real-time Streaming and AI Era

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Monthly Chronicles - July 2025
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
The AUB Centre for AI in Media Proposal.docx
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?

Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka Summit 2020