Chapter 10. Securing Kafka
A secure deployment of Streams for Apache Kafka might encompass one or more of the following security measures:
- Encryption
Streams for Apache Kafka supports Transport Layer Security (TLS), a protocol for encrypted communication.
- Communication is always encrypted between Streams for Apache Kafka components.
-
To set up TLS-encrypted communication between Kafka and clients, you configure listeners in the
Kafkacustom resource.
- Authentication
Kafka listeners use authentication to ensure a secure client connection to the Kafka cluster. Clients can also be configured for mutual authentication. Security credentials are created and managed by the Cluster and User Operator.
Supported authentication mechanisms:
- mTLS authentication (on listeners with TLS-enabled encryption)
- SASL SCRAM-SHA-512
- OAuth 2.0 token based authentication
- Custom authentication (supported by Kafka)
- Authorization
Authorization controls the operations that are permitted on Kafka brokers by specific clients or users.
Supported authorization mechanisms:
- Simple authorization using ACL rules
- OAuth 2.0 authorization (if you are using OAuth 2.0 token-based authentication)
- Open Policy Agent (OPA) authorization
- Custom authorization (supported by Kafka)
- Federal Information Processing Standards (FIPS)
- Streams for Apache Kafka is designed to run on FIPS-enabled Kubernetes clusters to ensure data security and system interoperability. For more information about the NIST validation program and validated modules, see Cryptographic Module Validation Program on the NIST website.