DirectorySecurity AdvisoriesPricing
/
Sign in
Directory
kafka-fips logoFIPS

kafka-fips

Last changed
Request a free trial

Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.

Tags
Overview
Comparison
Provenance
Specifications
SBOM
Vulnerabilities
Advisories

Chainguard Container for kafka-fips

FIPS 140-3 Apache Kafka distributed event store and stream-processing platform

Chainguard Containers are regularly-updated, secure-by-default container images.

Download this Container Image

For those with access, this container image is available on cgr.dev:

docker pull cgr.dev/ORGANIZATION/kafka-fips:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.

Compatibility Notes

Chainguard's kafka-fips container image contains a patched version of Kafka that relies on the BouncyCastle FIPS (BCFIPS) Java security provider and classes. It does not require kernel-mode FIPS configuration at runtime, and supports NIST-Approved algorithms only.

Keystore and Truststore Requirements

The BCFKS (BouncyCastle FIPS Keystore) format is supported for keystores and truststores. For example, the following formats are rejected:

  • JKS — does not use FIPS-approved algorithms
  • PKCS12 — certificate parsing needs patches to force RFC9879 KDF and PBMAC algorithms

PEM Certificates

PEM certificates can be used directly via Kafka's inline PEM configuration (e.g. ssl.keystore.type=PEM). When using PEM, certificates and keys must use FIPS 140-3 compatible algorithms.

Non-approced NIST curves (e.g., secp256k1, ed25519), invalid key sizes, and legacy signature algorithms are not supported.

TLS Requirements

  • TLS 1.2 or TLS 1.3 are required. TLS 1.1 and below are rejected.
  • Only cipher suites that use valid FIPS 140-3 algorithms are permitted. Non-FIPS suites using algorithms like ChaCha20 or 3DES are rejected.

Usage

This image uses the same entrypoint and configuration patterns as Chainguard's standard kafka image. See the kafka README for general usage, environment variable configuration, and Kubernetes deployment examples.

SettingValue

Entrypoint

/__cacert_entrypoint.sh

Cmd

/etc/kafka/docker/run

User

appuser (uid 1000)

Working Directory

/

JAVA_HOME

/opt/java/openjdk

Key features:

  • KRaft Mode: Uses Kafka Raft metadata exclusively. ZooKeeper is not supported.
  • FIPS 140-3: Cryptographic operations use the BouncyCastle FIPS (BCFIPS) provider.
  • Environment Variable Configuration: Configure Kafka using KAFKA_* environment variables.
  • Non-Root User: Runs as appuser (uid 1000) matching apache/kafka.

BCFKS Keystore Configuration

Generate BCFKS keystores using keytool, which is included in the image:

docker run --rm -v $(pwd)/certs:/certs --entrypoint sh \
  cgr.dev/ORGANIZATION/kafka-fips:latest -c '
    keytool -genkeypair -alias kafka -keyalg RSA -keysize 2048 -validity 365 \
      -dname "CN=localhost" \
      -keystore /certs/kafka.keystore.bcfks -storetype BCFKS \
      -storepass changeit -keypass changeit \
      -providername BCFIPS \
      -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider

    keytool -exportcert -alias kafka \
      -keystore /certs/kafka.keystore.bcfks -storetype BCFKS \
      -storepass changeit \
      -providername BCFIPS \
      -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
      -file /certs/kafka.der

    keytool -importcert -alias kafka -file /certs/kafka.der \
      -keystore /certs/kafka.truststore.bcfks -storetype BCFKS \
      -storepass changeit -noprompt \
      -providername BCFIPS \
      -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
  '

Run the image with a .properties configuration file, or environment variables that point to the bcfks keystore and truststores:

docker run -d \
  --name kafka-fips \
  -p 9093:9093 \
  -v $(pwd)/certs:/etc/kafka/secrets \
  -e KAFKA_NODE_ID=1 \
  -e KAFKA_PROCESS_ROLES=broker,controller \
  -e KAFKA_LISTENERS=SSL://:9093,CONTROLLER://:9094 \
  -e KAFKA_ADVERTISED_LISTENERS=SSL://localhost:9093 \
  -e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
  -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:SSL,SSL:SSL \
  -e KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9094 \
  -e KAFKA_SSL_KEYSTORE_TYPE=BCFKS \
  -e KAFKA_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.keystore.bcfks \
  -e KAFKA_SSL_KEYSTORE_PASSWORD=changeit \
  -e KAFKA_SSL_KEY_PASSWORD=changeit \
  -e KAFKA_SSL_TRUSTSTORE_TYPE=BCFKS \
  -e KAFKA_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.truststore.bcfks \
  -e KAFKA_SSL_TRUSTSTORE_PASSWORD=changeit \
  -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
  -e CLUSTER_ID=MkU3OEVBNTcwNTJENDM2Qk \
  cgr.dev/ORGANIZATION/kafka-fips:latest

FIPS Support

For more on FIPS support in Chainguard Containers, consult the guide on FIPS-enabled Chainguard Containers on Chainguard Academy.

Documentation and Resources

What are Chainguard Containers?

Chainguard's free tier of Starter container images are built with Wolfi, our minimal Linux undistro.

All other Chainguard Containers are built with Chainguard OS, Chainguard's minimal Linux operating system designed to produce container images that meet the requirements of a more secure software supply chain.

The main features of Chainguard Containers include:

For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a development, or -dev, variant.

In all other cases, including Chainguard Containers tagged as :latest or with a specific version number, the container images include only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager.

Although the -dev container image variants have similar security features as their more minimal versions, they include additional software that is typically not necessary in production environments. We recommend using multi-stage builds to copy artifacts from the -dev variant into a more minimal production image.

Need additional packages?

To improve security, Chainguard Containers include only essential dependencies. Need more packages? Chainguard customers can use Custom Assembly to add packages, either through the Console, chainctl, or API.

To use Custom Assembly in the Chainguard Console: navigate to the image you'd like to customize in your Organization's list of images, and click on the Customize image button at the top of the page.

Learn More

Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Librariescontact us for access.

Trademarks

This software listing is packaged by Chainguard. The trademarks set forth in this offering are owned by their respective companies, and use of them does not imply any affiliation, sponsorship, or endorsement by such companies.

Licenses

Chainguard's container images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" tag of this image:

  • Apache-2.0

  • BSD-3-Clause

  • Bitstream-Vera

  • CC-PDDC

  • FTL

  • GCC-exception-3.1

  • GPL-2.0-only

For a complete list of licenses, please refer to this Image's SBOM.

Software license agreement

Compliance

Chainguard Containers are SLSA Level 3 compliant with detailed metadata and documentation about how it was built. We generate build provenance and a Software Bill of Materials (SBOM) for each release, with complete visibility into the software supply chain.

SLSA compliance at Chainguard

This image helps reduce time and effort in establishing PCI DSS 4.0 compliance with low-to-no CVEs.

PCI DSS at Chainguard

This is a FIPS validated image for FedRAMP compliance.

This image is STIG hardened and scanned against the DISA General Purpose Operating System SRG with reports available.

Learn more about STIGsGet started with STIGs

Related images
kafka logo
kafka

Category
FIPS
STIG

The trusted source for open source

Talk to an expert
© 2025 Chainguard. All Rights Reserved.
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsIntegrationsPricing