SlideShare a Scribd company logo
Securing the
Message Bus with
Kafka Streams
SBA 8(a) Certified, WOSB, and EDWOSB
https://goraft.tech
Kafka Summit, Americas
September 14 – 15, 2021
Presenters: Paul Otto & Ryan Salcido
• Introduction
• Objective
• Why is this needed?
• Caveats
• Architecture Diagram
• Open Policy Agent
• Kafka Streams
• Kafka Consumer Examples
• Demo
• Final Remarks/Questions
Agenda. 2
Introduction. 3
• Inspired by the Raft Consensus Model, Raft
strives to deliver solutions that are
dependable, accessible, and viable at scale
within the public sector
• This presentation describes how we
developed an event-streaming service using
Confluent Platform, Open Policy Agent, and
Kafka Streams to provide topic and message
level security
• Researched and prototyped a solution that
simplified the integration process for
applications while leveraging the native Kafka
capabilities to provide a “single-source-of-
truth” data solution
Objective.
• Provide message-level security with
Kafka using Open Policy Agent and
Kafka Streams
• Use native Kafka capabilities without
the need for a REST API
• Protect sensitive data (i.e., PII) without
the need for multiple sub-topics
• Allow for different consumers to
subscribe to the same topic, but
receive appropriate messages
according to access-level
4
Why is this needed?
• With Event Streaming Architecture becoming more prevalent within
enterprises, the need for securing data streams containing PII (or
classified) data is important.
• Within the public sector, protecting classified data is a must and
becomes more difficult when working with ESA
• A common solution for adding security controls at the topic and
message level within Kafka is to create a REST API to enforce RBAC
• Lose the ability to get the data to the consumer when it is needed
• Another solution is to create sub-topics that consumers can then
subscribe to, but can quickly run into scalability issues
5
Caveats.
• Use case being shown here is a way to help
prevent PII leakage when using Kafka
• Additional steps would need to be taken to
prevent a consumer from directly accessing the
Kafka broker rather than Kafka Streams
• Would work in an environment where
the consumers/producers and Kafka platform
can have a trusted, mutual agreement
• Could include periodic audits of Kafka
usage
• In zero-trust environments, a Kafka proxy would
be needed between the Kafka Streams
interface and the consumers
6
Architecture Diagram. 7
What is Open Policy Agent?
• Policy engine typically used for cloud
native environments
• Fits our use case on integrating with
Kafka to provide topic-level security
• Utilizes its own declarative policy
language called Rego to define policies
(".rego" file extension)
• Obtained CNCF graduated status in
early 2021
8
Example of OPA's Rego Query Language.
• The screenshot on the left shows a data structure for controlling access
to topics
• The screenshot on the right processes the input and ultimately
determines if the user has access to the requested topic
• A boolean value is returned to Kafka based on whether the user has
access or not
9
Rego Policy: Defining levels of access for users.
• Additionally, we can restrict users from doing certain operations within
Kafka
• In this example, "bobjones" is allowed to read, write, describe, and create
the "pii" topic
• However, "alicesmith" is only granted permission to read and describe the
"pii" topic
• Any other operations not explicitly
granted will result in an
unauthorized error
10
How do we write the allow policies in OPA?
• To allow certain operations, we create an "allow" block with the necessary logic
• The first "allow" block checks the list of clients defined earlier against the
requested operation
• Example:
• principal.name == "bobjones"
• input.resource.name == "pii" (the topic name)
• input.operation.name == "read"
• Can also be "write", "create",
"describe", "delete"
• The "[_]" is a for loop in Rego syntax and
checks to see if the list of allowed operations
for the user matches the requested operation
• If it does, then return "true" to Kafka,
otherwise return "false"
11
Leveraging GitOps with OPA.
• Rather than storing RBAC policies directly (the
previous example), we can leverage GitOps to
reduce the issue of change management
• Can integrate policy-as-code to help automate the
process to deployment by using CI/CD pipelines
• Changes to the git repository can automatically be
picked up, tested, validated, and deployed
12
Identity and Access Management with OPA.
• In addition to leveraging GitOps, an IAM framework such as Keycloak
can be used to store the RBAC policies for users
• Helps declutter the Rego files
• As a result, once a user authenticates via IAM, the JWT response can
contain the RBAC policies granted to the user
13
How does Kafka communicate with OPA?
• For Kafka to be able to communicate with OPA to provide topic-level
security, we need to create a derivative Docker image to inject the OPA
jar into the base Kafka image
• Then, we need to provide the Kafka broker with additional configuration
properties
14
What does the derivative Docker image look like?
# Base image: Confluent Kafka v5.5.2
FROM confluentinc/cp-server:5.5.2
WORKDIR /opt
# Copy the OPA jar that handles the role-based access control
COPY ./target/kafka-opa-1.0.0.jar /usr/share/java/kafka
# Change to non-root user
USER 1001
Dockerfile:
15
Additional Kafka Broker Properties.
• As mentioned earlier, we need to add additional properties to the Kafka broker,
so that it knows how to communicate with OPA
• If environment variables are needed instead (i.e., Docker-Compose), replace
the "." with "_", capitalize all property names, and prepend "KAFKA"
• Example: authorizer.class.name == KAFKA_AUTHORIZER_CLASS_NAME
# Properties
# Specify full class name
authorizer.class.name=tech.goraft.kafka.opa.OpaAuthorizer
# The url that handles the logic on whether to allow the user to access the topic
opa.authorizer.url=http://opa:8181/v1/data/kafka/authz/allow
# Fail secure
opa.authorizer.allow.on.error=false
opa.authorizer.cache.initial.capacity=100
opa.authorizer.cache.maximum.size=100
opa.authorizer.cache.expire.after.ms=10000
16
Kafka Streams.
• A library for building real-time stream-processing applications
• In this case, we leveraged Kafka Streams to provide message-level
security based on the authenticated consumer
• Once a user is granted access to the requested topic in OPA, the Kafka
Streams microservice checks each outgoing message
• Messages are filtered out if the end user does not have access
• In this scenario, we can still leverage the native Kafka capabilities for
processing streams in real-time
17
Kafka Streams (cont.).
• If needed, this can be taken a step further by redacting certain fields of
an outgoing message
• Kafka Streams can transform messages, so that certain sensitive data is
not consumed
• For example, if one of the fields is a person's SSN, there may be a
situation where we want to return only the last 4 digits or even remove
the field altogether
• Can use a combination of the "filter" and "map" methods provided in the
KStream Java class
18
Example: Consumer subscribing to Kafka topic.
• This example shows the messages "bobjones" receives when
subscribing to the "pii" Kafka topic
• Even though there are many other messages in the Kafka topic for
other users, "bobjones" can only see his
19
Example: TopicAuthorizationException Error.
• This examples shows the result of a consumer attempting to subscribe
to a topic they do not have access to
• The user was able to authenticate properly via username/password,
but OPA prohibited the user, "johnhernandez", from reading the "pii"
topic
20
Demo.
• Encompasses the concepts we discussed
earlier with Open Policy Agent for topic-
level security and Kafka Streams for
message-level security
• The repository contains source code for
bootstrapping a Confluent Kafka cluster
with Open Policy Agent and a Kafka
Stream running for each of the 3 users:
"bobjones", "alicesmith", "johnhernandez"
• Uses Docker-Compose to start up all the
necessary services
• GitHub repository: https://github.com/raft-
tech/kafka-summit-2021
21
GitHub Repository.
We have set-up a sandbox environment using Docker-Compose
to allow for hands-on experimentation with Confluent, Open
Policy Agent, and Kafka Streams.
Please feel free to check it out after this presentation!
GitHub repository: https://github.com/raft-tech/kafka-summit-
2021
22
Thank you.
SBA 8(a) Certified, WOSB, and EDWOSB
https://goraft.tech
Paul Otto
Email: potto@goraft.tech
Twitter: @potto007
LinkedIn: https://www.linkedin.com/in/paulhotto
Ryan Salcido
Email: rsalcido@goraft.tech
Twitter: @ryan__salcido
LinkedIn: https://www.linkedin.com/in/ryan-salcido
GitHub repository: https://github.com/raft-tech/kafka-summit-2021
23

More Related Content

What's hot

Admission controllers - PSP, OPA, Kyverno and more!
Admission controllers - PSP, OPA, Kyverno and more!Admission controllers - PSP, OPA, Kyverno and more!
Admission controllers - PSP, OPA, Kyverno and more!
SebastienSEYMARC
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
Guozhang Wang
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101
KubeAcademy
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Kai Wähner
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
Chan Shik Lim
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniertFast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
confluent
 
Kafka PPT.pptx
Kafka PPT.pptxKafka PPT.pptx
Kafka PPT.pptx
SRIRAMKIRAN9
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & Complexity
DevOps.com
 
Perl best practices v4
Perl best practices v4Perl best practices v4
Perl best practices v4
Randal Schwartz
 
Vault
VaultVault
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
Stefan Schimanski
 
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
HostedbyConfluent
 
Building High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in KafkaBuilding High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in Kafka
confluent
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
Bob Killen
 
SRE & Kubernetes
SRE & KubernetesSRE & Kubernetes
SRE & Kubernetes
Afkham Azeez
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
J On The Beach
 
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
Jin Sol Kim 김진솔
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
Alexei Ledenev
 

What's hot (20)

Admission controllers - PSP, OPA, Kyverno and more!
Admission controllers - PSP, OPA, Kyverno and more!Admission controllers - PSP, OPA, Kyverno and more!
Admission controllers - PSP, OPA, Kyverno and more!
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
 
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniertFast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
 
Kafka PPT.pptx
Kafka PPT.pptxKafka PPT.pptx
Kafka PPT.pptx
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & Complexity
 
Perl best practices v4
Perl best practices v4Perl best practices v4
Perl best practices v4
 
Vault
VaultVault
Vault
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
Know Your Topics – A Deep Dive on Topic IDs with KIP-516 with Justine Olshan ...
 
Building High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in KafkaBuilding High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in Kafka
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
SRE & Kubernetes
SRE & KubernetesSRE & Kubernetes
SRE & Kubernetes
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
 
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
[HashiCorp] IaC로 시작하는 하이브리드 클라우드 관리 전략 with Terraform, Consul, Nomad (June 2021)
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 

Similar to Securing the Message Bus with Kafka Streams | Paul Otto and Ryan Salcido, Raft LLC

Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
HostedbyConfluent
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using Kubeless
Ahmed Misbah
 
Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
NguyenChiHoangMinh
 
Consensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdfConsensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdf
Guozhang Wang
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
Shimi Bandiel
 
Fundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache KafkaFundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache Kafka
Angelo Cesaro
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy Agent
CloudOps2005
 
Unleashing Real-time Power with Kafka.pptx
Unleashing Real-time Power with Kafka.pptxUnleashing Real-time Power with Kafka.pptx
Unleashing Real-time Power with Kafka.pptx
Knoldus Inc.
 
Kafka for DBAs
Kafka for DBAsKafka for DBAs
Kafka for DBAs
Gwen (Chen) Shapira
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
Oracle Developers
 
Apache Airflow Introduction
Apache Airflow IntroductionApache Airflow Introduction
Apache Airflow Introduction
Liangjun Jiang
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
confluent
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile appsMugunth Kumar
 
What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0
David Bosschaert
 
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Opcito Technologies
 
Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19
ssuser73434e
 
Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19
Timothy Spann
 
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
Denodo
 

Similar to Securing the Message Bus with Kafka Streams | Paul Otto and Ryan Salcido, Raft LLC (20)

Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using Kubeless
 
Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
 
Consensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdfConsensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdf
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
 
Fundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache KafkaFundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache Kafka
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy Agent
 
Unleashing Real-time Power with Kafka.pptx
Unleashing Real-time Power with Kafka.pptxUnleashing Real-time Power with Kafka.pptx
Unleashing Real-time Power with Kafka.pptx
 
Kafka for DBAs
Kafka for DBAsKafka for DBAs
Kafka for DBAs
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
 
Apache Airflow Introduction
Apache Airflow IntroductionApache Airflow Introduction
Apache Airflow Introduction
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile apps
 
What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0
 
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
 
Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19
 
Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19
 
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
Unlocking the Power of Apache Kafka: How Kafka Listeners Facilitate Real-time...
 

More from HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
HostedbyConfluent
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
HostedbyConfluent
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
HostedbyConfluent
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
HostedbyConfluent
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
HostedbyConfluent
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
HostedbyConfluent
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
HostedbyConfluent
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
HostedbyConfluent
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
HostedbyConfluent
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
HostedbyConfluent
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
HostedbyConfluent
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
HostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
HostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
HostedbyConfluent
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
HostedbyConfluent
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
HostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
HostedbyConfluent
 

More from HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

Securing the Message Bus with Kafka Streams | Paul Otto and Ryan Salcido, Raft LLC

  • 1. Securing the Message Bus with Kafka Streams SBA 8(a) Certified, WOSB, and EDWOSB https://goraft.tech Kafka Summit, Americas September 14 – 15, 2021 Presenters: Paul Otto & Ryan Salcido
  • 2. • Introduction • Objective • Why is this needed? • Caveats • Architecture Diagram • Open Policy Agent • Kafka Streams • Kafka Consumer Examples • Demo • Final Remarks/Questions Agenda. 2
  • 3. Introduction. 3 • Inspired by the Raft Consensus Model, Raft strives to deliver solutions that are dependable, accessible, and viable at scale within the public sector • This presentation describes how we developed an event-streaming service using Confluent Platform, Open Policy Agent, and Kafka Streams to provide topic and message level security • Researched and prototyped a solution that simplified the integration process for applications while leveraging the native Kafka capabilities to provide a “single-source-of- truth” data solution
  • 4. Objective. • Provide message-level security with Kafka using Open Policy Agent and Kafka Streams • Use native Kafka capabilities without the need for a REST API • Protect sensitive data (i.e., PII) without the need for multiple sub-topics • Allow for different consumers to subscribe to the same topic, but receive appropriate messages according to access-level 4
  • 5. Why is this needed? • With Event Streaming Architecture becoming more prevalent within enterprises, the need for securing data streams containing PII (or classified) data is important. • Within the public sector, protecting classified data is a must and becomes more difficult when working with ESA • A common solution for adding security controls at the topic and message level within Kafka is to create a REST API to enforce RBAC • Lose the ability to get the data to the consumer when it is needed • Another solution is to create sub-topics that consumers can then subscribe to, but can quickly run into scalability issues 5
  • 6. Caveats. • Use case being shown here is a way to help prevent PII leakage when using Kafka • Additional steps would need to be taken to prevent a consumer from directly accessing the Kafka broker rather than Kafka Streams • Would work in an environment where the consumers/producers and Kafka platform can have a trusted, mutual agreement • Could include periodic audits of Kafka usage • In zero-trust environments, a Kafka proxy would be needed between the Kafka Streams interface and the consumers 6
  • 8. What is Open Policy Agent? • Policy engine typically used for cloud native environments • Fits our use case on integrating with Kafka to provide topic-level security • Utilizes its own declarative policy language called Rego to define policies (".rego" file extension) • Obtained CNCF graduated status in early 2021 8
  • 9. Example of OPA's Rego Query Language. • The screenshot on the left shows a data structure for controlling access to topics • The screenshot on the right processes the input and ultimately determines if the user has access to the requested topic • A boolean value is returned to Kafka based on whether the user has access or not 9
  • 10. Rego Policy: Defining levels of access for users. • Additionally, we can restrict users from doing certain operations within Kafka • In this example, "bobjones" is allowed to read, write, describe, and create the "pii" topic • However, "alicesmith" is only granted permission to read and describe the "pii" topic • Any other operations not explicitly granted will result in an unauthorized error 10
  • 11. How do we write the allow policies in OPA? • To allow certain operations, we create an "allow" block with the necessary logic • The first "allow" block checks the list of clients defined earlier against the requested operation • Example: • principal.name == "bobjones" • input.resource.name == "pii" (the topic name) • input.operation.name == "read" • Can also be "write", "create", "describe", "delete" • The "[_]" is a for loop in Rego syntax and checks to see if the list of allowed operations for the user matches the requested operation • If it does, then return "true" to Kafka, otherwise return "false" 11
  • 12. Leveraging GitOps with OPA. • Rather than storing RBAC policies directly (the previous example), we can leverage GitOps to reduce the issue of change management • Can integrate policy-as-code to help automate the process to deployment by using CI/CD pipelines • Changes to the git repository can automatically be picked up, tested, validated, and deployed 12
  • 13. Identity and Access Management with OPA. • In addition to leveraging GitOps, an IAM framework such as Keycloak can be used to store the RBAC policies for users • Helps declutter the Rego files • As a result, once a user authenticates via IAM, the JWT response can contain the RBAC policies granted to the user 13
  • 14. How does Kafka communicate with OPA? • For Kafka to be able to communicate with OPA to provide topic-level security, we need to create a derivative Docker image to inject the OPA jar into the base Kafka image • Then, we need to provide the Kafka broker with additional configuration properties 14
  • 15. What does the derivative Docker image look like? # Base image: Confluent Kafka v5.5.2 FROM confluentinc/cp-server:5.5.2 WORKDIR /opt # Copy the OPA jar that handles the role-based access control COPY ./target/kafka-opa-1.0.0.jar /usr/share/java/kafka # Change to non-root user USER 1001 Dockerfile: 15
  • 16. Additional Kafka Broker Properties. • As mentioned earlier, we need to add additional properties to the Kafka broker, so that it knows how to communicate with OPA • If environment variables are needed instead (i.e., Docker-Compose), replace the "." with "_", capitalize all property names, and prepend "KAFKA" • Example: authorizer.class.name == KAFKA_AUTHORIZER_CLASS_NAME # Properties # Specify full class name authorizer.class.name=tech.goraft.kafka.opa.OpaAuthorizer # The url that handles the logic on whether to allow the user to access the topic opa.authorizer.url=http://opa:8181/v1/data/kafka/authz/allow # Fail secure opa.authorizer.allow.on.error=false opa.authorizer.cache.initial.capacity=100 opa.authorizer.cache.maximum.size=100 opa.authorizer.cache.expire.after.ms=10000 16
  • 17. Kafka Streams. • A library for building real-time stream-processing applications • In this case, we leveraged Kafka Streams to provide message-level security based on the authenticated consumer • Once a user is granted access to the requested topic in OPA, the Kafka Streams microservice checks each outgoing message • Messages are filtered out if the end user does not have access • In this scenario, we can still leverage the native Kafka capabilities for processing streams in real-time 17
  • 18. Kafka Streams (cont.). • If needed, this can be taken a step further by redacting certain fields of an outgoing message • Kafka Streams can transform messages, so that certain sensitive data is not consumed • For example, if one of the fields is a person's SSN, there may be a situation where we want to return only the last 4 digits or even remove the field altogether • Can use a combination of the "filter" and "map" methods provided in the KStream Java class 18
  • 19. Example: Consumer subscribing to Kafka topic. • This example shows the messages "bobjones" receives when subscribing to the "pii" Kafka topic • Even though there are many other messages in the Kafka topic for other users, "bobjones" can only see his 19
  • 20. Example: TopicAuthorizationException Error. • This examples shows the result of a consumer attempting to subscribe to a topic they do not have access to • The user was able to authenticate properly via username/password, but OPA prohibited the user, "johnhernandez", from reading the "pii" topic 20
  • 21. Demo. • Encompasses the concepts we discussed earlier with Open Policy Agent for topic- level security and Kafka Streams for message-level security • The repository contains source code for bootstrapping a Confluent Kafka cluster with Open Policy Agent and a Kafka Stream running for each of the 3 users: "bobjones", "alicesmith", "johnhernandez" • Uses Docker-Compose to start up all the necessary services • GitHub repository: https://github.com/raft- tech/kafka-summit-2021 21
  • 22. GitHub Repository. We have set-up a sandbox environment using Docker-Compose to allow for hands-on experimentation with Confluent, Open Policy Agent, and Kafka Streams. Please feel free to check it out after this presentation! GitHub repository: https://github.com/raft-tech/kafka-summit- 2021 22
  • 23. Thank you. SBA 8(a) Certified, WOSB, and EDWOSB https://goraft.tech Paul Otto Email: potto@goraft.tech Twitter: @potto007 LinkedIn: https://www.linkedin.com/in/paulhotto Ryan Salcido Email: rsalcido@goraft.tech Twitter: @ryan__salcido LinkedIn: https://www.linkedin.com/in/ryan-salcido GitHub repository: https://github.com/raft-tech/kafka-summit-2021 23