SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Describing Kafka security in AsyncAPI
Dale Lane, IBM
1. encryption
2. authentication
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
no encryption
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
no encryption
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
no encryption
encryption
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
no encryption
encryption
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
no encryption
encryption
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
no authentication
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: <kafkaAuthType>
authentication
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: <kafkaAuthType>
authentication
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: <kafkaAuthType>
authentication
AsyncAPI
security scheme types
plain
scramSha256
scramSha512
oauth2
gssapi
X509
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: plain
authentication
AsyncAPI
security scheme types
plain
scramSha256
scramSha512
oauth2
gssapi
X509
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha256
authentication
AsyncAPI
security scheme types
plain
scramSha256
scramSha512
oauth2
gssapi
X509
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha512
authentication
AsyncAPI
security scheme types
plain
scramSha256
scramSha512
oauth2
gssapi
X509
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security.protocol:
PLAINTEXT
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
Properties props = new Properties();
props.put(
CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG,
"mycluster.org:8092");
props.put(
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG,
"PLAINTEXT");
security.protocol:
PLAINTEXT
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha256
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha256
security.protocol:
SASL_PLAINTEXT
sasl.mechanism:
SCRAM-SHA-256
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha256
Properties props = new Properties();
props.put(
CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG,
"mycluster.org:8092");
props.put(
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG,
"SASL_PLAINTEXT");
props.put(
SaslConfigs.SASL_MECHANISM,
"SCRAM-SHA-256");
security.protocol:
SASL_PLAINTEXT
sasl.mechanism:
SCRAM-SHA-256
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha512
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha512
security.protocol:
SASL_SSL
sasl.mechanism:
SCRAM-SHA-512
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka-secure
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: scramSha512
Properties props = new Properties();
props.put(
CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG,
"mycluster.org:8092");
props.put(
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG,
"SASL_SSL");
props.put(
SaslConfigs.SASL_MECHANISM,
"SCRAM-SHA-512");
security.protocol:
SASL_SSL
sasl.mechanism:
SCRAM-SHA-512
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: plain
Properties
Java
asyncapi: 2.2.0
info:
title: My Kafka topic
version: 1.0.0
servers:
demo:
url: mycluster.org:8092
protocol: kafka
security:
- mysecurity
components:
securitySchemes:
mysecurity:
type: plain
Properties props = new Properties();
props.put(
CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG,
"mycluster.org:8092");
props.put(
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG,
"SASL_PLAINTEXT");
props.put(
SaslConfigs.SASL_MECHANISM,
"PLAIN");
security.protocol:
SASL_PLAINTEXT
sasl.mechanism:
PLAIN
Properties
Java
AsyncAPI
server protocol
AsyncAPI
security scheme type
Kafka
sasl.mechanism
Kafka
security.protocol
kafka PLAINTEXT
kafka plain SASL_PLAINTEXT PLAIN
kafka scramSha256 SASL_PLAINTEXT SCRAM-SHA-256
kafka scramSha512 SASL_PLAINTEXT SCRAM-SHA-512
kafka oauth2 SASL_PLAINTEXT OAUTHBEARER
kafka gssapi SASL_PLAINTEXT GSSAPI
kafka-secure SSL
kafka-secure plain SASL_SSL PLAIN
kafka-secure scramSha256 SASL_SSL SCRAM-SHA-256
kafka-secure scramSha512 SASL_SSL SCRAM-SHA-512
kafka-secure oauth2 SASL_SSL OAUTHBEARER
kafka-secure gssapi SASL_SSL GSSAPI
kafka-secure X509 SSL
Tools that understand this:
• AsyncAPI generator
• @asyncapi/markdown-template
• https://github.com/asyncapi/markdown-template
• @asyncapi/html-template
• https://github.com/asyncapi/asyncapi-react
• @asyncapi/java-spring-template
• https://github.com/asyncapi/java-spring-template
• @asyncapi/java-template
• https://github.com/IBM-messaging/mq-asyncapi-java-template
• Node-RED AsyncAPI plugin
• https://github.com/dalelane/node-red-contrib-plugin-asyncapi
Describing Kafka security in AsyncAPI
Dale Lane, IBM

Más contenido relacionado

La actualidad más candente

Expose your event-driven data to the outside world using webhooks powered by ...
Expose your event-driven data to the outside world using webhooks powered by ...Expose your event-driven data to the outside world using webhooks powered by ...
Expose your event-driven data to the outside world using webhooks powered by ...
HostedbyConfluent
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
Databricks
 
Mainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache KafkaMainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache Kafka
Kai Wähner
 

La actualidad más candente (20)

Monitoring Apache Kafka
Monitoring Apache KafkaMonitoring Apache Kafka
Monitoring Apache Kafka
 
kafka
kafkakafka
kafka
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
Expose your event-driven data to the outside world using webhooks powered by ...
Expose your event-driven data to the outside world using webhooks powered by ...Expose your event-driven data to the outside world using webhooks powered by ...
Expose your event-driven data to the outside world using webhooks powered by ...
 
Tuning kafka pipelines
Tuning kafka pipelinesTuning kafka pipelines
Tuning kafka pipelines
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
 
A deep dive into Amazon MSK - ADB206 - Chicago AWS Summit
A deep dive into Amazon MSK - ADB206 - Chicago AWS SummitA deep dive into Amazon MSK - ADB206 - Chicago AWS Summit
A deep dive into Amazon MSK - ADB206 - Chicago AWS Summit
 
Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)
 
Getting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesGetting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on Kubernetes
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Using Vault to decouple MySQL Secrets
Using Vault to decouple MySQL SecretsUsing Vault to decouple MySQL Secrets
Using Vault to decouple MySQL Secrets
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
 
Mainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache KafkaMainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache Kafka
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 

Similar a Describing Kafka security in AsyncAPI

Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
HostedbyConfluent
 
Final_Report_new (1)
Final_Report_new (1)Final_Report_new (1)
Final_Report_new (1)
Adarsh Burma
 

Similar a Describing Kafka security in AsyncAPI (20)

Training
TrainingTraining
Training
 
Spark streaming + kafka 0.10
Spark streaming + kafka 0.10Spark streaming + kafka 0.10
Spark streaming + kafka 0.10
 
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
 
Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
Camel Kafka Connectors: Tune Kafka to “Speak” with (Almost) Everything (Andre...
 
Practical tips and tricks for Apache Kafka messages integration | Francesco T...
Practical tips and tricks for Apache Kafka messages integration | Francesco T...Practical tips and tricks for Apache Kafka messages integration | Francesco T...
Practical tips and tricks for Apache Kafka messages integration | Francesco T...
 
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
 
How to build 1000 microservices with Kafka and thrive
How to build 1000 microservices with Kafka and thriveHow to build 1000 microservices with Kafka and thrive
How to build 1000 microservices with Kafka and thrive
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
 
Lessons Learnt from Running Thousands of On-demand Spark Applications
Lessons Learnt from Running Thousands of On-demand Spark ApplicationsLessons Learnt from Running Thousands of On-demand Spark Applications
Lessons Learnt from Running Thousands of On-demand Spark Applications
 
Apache kafka configuration-guide
Apache kafka configuration-guideApache kafka configuration-guide
Apache kafka configuration-guide
 
Kafka clients and emitters
Kafka clients and emittersKafka clients and emitters
Kafka clients and emitters
 
Lessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at ScaleLessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at Scale
 
Real-time streaming and data pipelines with Apache Kafka
Real-time streaming and data pipelines with Apache KafkaReal-time streaming and data pipelines with Apache Kafka
Real-time streaming and data pipelines with Apache Kafka
 
Final_Report_new (1)
Final_Report_new (1)Final_Report_new (1)
Final_Report_new (1)
 
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
 
Getting up to speed with Kafka Connect: from the basics to the latest feature...
Getting up to speed with Kafka Connect: from the basics to the latest feature...Getting up to speed with Kafka Connect: from the basics to the latest feature...
Getting up to speed with Kafka Connect: from the basics to the latest feature...
 
I can't believe it's not a queue: Kafka and Spring
I can't believe it's not a queue: Kafka and SpringI can't believe it's not a queue: Kafka and Spring
I can't believe it's not a queue: Kafka and Spring
 
My First Big Data Application
My First Big Data ApplicationMy First Big Data Application
My First Big Data Application
 
Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...
Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...
Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...
 
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
 

Más de Dale Lane

Debugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile DevicesDebugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile Devices
Dale Lane
 

Más de Dale Lane (20)

Our NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entryOur NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entry
 
Useful Kafka tools
Useful Kafka toolsUseful Kafka tools
Useful Kafka tools
 
An intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersAn intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka users
 
How to increase the social impact you make
How to increase the social impact you makeHow to increase the social impact you make
How to increase the social impact you make
 
Introducing Machine Learning to Kids
Introducing Machine Learning to KidsIntroducing Machine Learning to Kids
Introducing Machine Learning to Kids
 
Introducing machine learning to kids
Introducing machine learning to kidsIntroducing machine learning to kids
Introducing machine learning to kids
 
Small Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps ChallengeSmall Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps Challenge
 
Owls
OwlsOwls
Owls
 
The skills implications of Cognitive Computing
The skills implications of Cognitive ComputingThe skills implications of Cognitive Computing
The skills implications of Cognitive Computing
 
Conversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pagesConversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pages
 
Debugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile DevicesDebugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile Devices
 
GaianDB
GaianDBGaianDB
GaianDB
 
Pushing, pulling or leaving the door open
Pushing, pulling or leaving the door openPushing, pulling or leaving the door open
Pushing, pulling or leaving the door open
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Fire Eagle Guest Pass
Fire Eagle Guest PassFire Eagle Guest Pass
Fire Eagle Guest Pass
 
Monitoring your electricity usage
Monitoring your electricity usageMonitoring your electricity usage
Monitoring your electricity usage
 
CurrentCost
CurrentCostCurrentCost
CurrentCost
 
An introduction to Windows Mobile development
An introduction to Windows Mobile developmentAn introduction to Windows Mobile development
An introduction to Windows Mobile development
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
Mowing the lawn
Mowing the lawnMowing the lawn
Mowing the lawn
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Describing Kafka security in AsyncAPI

  • 1. Describing Kafka security in AsyncAPI Dale Lane, IBM
  • 3.
  • 4.
  • 5. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka no encryption
  • 6. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka no encryption
  • 7. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure no encryption encryption
  • 8. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure no encryption encryption
  • 9. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure no encryption encryption
  • 10.
  • 11. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka no authentication
  • 12. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: <kafkaAuthType> authentication
  • 13. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: <kafkaAuthType> authentication
  • 14. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: <kafkaAuthType> authentication AsyncAPI security scheme types plain scramSha256 scramSha512 oauth2 gssapi X509
  • 15. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: plain authentication AsyncAPI security scheme types plain scramSha256 scramSha512 oauth2 gssapi X509
  • 16. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure security: - mysecurity components: securitySchemes: mysecurity: type: scramSha256 authentication AsyncAPI security scheme types plain scramSha256 scramSha512 oauth2 gssapi X509
  • 17. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: scramSha512 authentication AsyncAPI security scheme types plain scramSha256 scramSha512 oauth2 gssapi X509
  • 18.
  • 19.
  • 20. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 Properties Java
  • 21. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka Properties Java
  • 22. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security.protocol: PLAINTEXT Properties Java
  • 23. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka Properties props = new Properties(); props.put( CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "mycluster.org:8092"); props.put( CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "PLAINTEXT"); security.protocol: PLAINTEXT Properties Java
  • 24. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: scramSha256 Properties Java
  • 25. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: scramSha256 security.protocol: SASL_PLAINTEXT sasl.mechanism: SCRAM-SHA-256 Properties Java
  • 26. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: scramSha256 Properties props = new Properties(); props.put( CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "mycluster.org:8092"); props.put( CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT"); props.put( SaslConfigs.SASL_MECHANISM, "SCRAM-SHA-256"); security.protocol: SASL_PLAINTEXT sasl.mechanism: SCRAM-SHA-256 Properties Java
  • 27. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure security: - mysecurity components: securitySchemes: mysecurity: type: scramSha512 Properties Java
  • 28. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure security: - mysecurity components: securitySchemes: mysecurity: type: scramSha512 security.protocol: SASL_SSL sasl.mechanism: SCRAM-SHA-512 Properties Java
  • 29. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka-secure security: - mysecurity components: securitySchemes: mysecurity: type: scramSha512 Properties props = new Properties(); props.put( CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "mycluster.org:8092"); props.put( CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_SSL"); props.put( SaslConfigs.SASL_MECHANISM, "SCRAM-SHA-512"); security.protocol: SASL_SSL sasl.mechanism: SCRAM-SHA-512 Properties Java
  • 30. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: plain Properties Java
  • 31. asyncapi: 2.2.0 info: title: My Kafka topic version: 1.0.0 servers: demo: url: mycluster.org:8092 protocol: kafka security: - mysecurity components: securitySchemes: mysecurity: type: plain Properties props = new Properties(); props.put( CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "mycluster.org:8092"); props.put( CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT"); props.put( SaslConfigs.SASL_MECHANISM, "PLAIN"); security.protocol: SASL_PLAINTEXT sasl.mechanism: PLAIN Properties Java
  • 32. AsyncAPI server protocol AsyncAPI security scheme type Kafka sasl.mechanism Kafka security.protocol kafka PLAINTEXT kafka plain SASL_PLAINTEXT PLAIN kafka scramSha256 SASL_PLAINTEXT SCRAM-SHA-256 kafka scramSha512 SASL_PLAINTEXT SCRAM-SHA-512 kafka oauth2 SASL_PLAINTEXT OAUTHBEARER kafka gssapi SASL_PLAINTEXT GSSAPI kafka-secure SSL kafka-secure plain SASL_SSL PLAIN kafka-secure scramSha256 SASL_SSL SCRAM-SHA-256 kafka-secure scramSha512 SASL_SSL SCRAM-SHA-512 kafka-secure oauth2 SASL_SSL OAUTHBEARER kafka-secure gssapi SASL_SSL GSSAPI kafka-secure X509 SSL
  • 33. Tools that understand this: • AsyncAPI generator • @asyncapi/markdown-template • https://github.com/asyncapi/markdown-template • @asyncapi/html-template • https://github.com/asyncapi/asyncapi-react • @asyncapi/java-spring-template • https://github.com/asyncapi/java-spring-template • @asyncapi/java-template • https://github.com/IBM-messaging/mq-asyncapi-java-template • Node-RED AsyncAPI plugin • https://github.com/dalelane/node-red-contrib-plugin-asyncapi
  • 34. Describing Kafka security in AsyncAPI Dale Lane, IBM