FIPS mode in Cloudera Streams Messaging - Kubernetes Operator
You can deploy Cloudera Streams Messaging - Kubernetes Operator components in FIPS 140-2/3 compliant mode to meet strict security requirements. Strimzi and its managed components automatically enable FIPS mode on FIPS-enabled RHEL 8.x or higher hosts. Cloudera Surveyor for Apache Kafka is FIPS compliant, but requires you to manually enable FIPS mode through configuration. Cloudera Surveyor also supports the use of custom security providers.
Host prerequisites
Cloudera Streams Messaging - Kubernetes Operator requires host prerequisites to run in FIPS mode.
The following host prerequisites are valid for Cloudera Streams Messaging - Kubernetes Operator:
- Host operating system must be Red Hat Enterprise Linux (RHEL) 8.x or a higher version.
 - FIPS mode must be enabled on the host.
 
If the host is FIPS-enabled, Containers running on that host will be FIPS-enabled too. All container images shipped with Cloudera Streams Messaging - Kubernetes Operator are built using RHEL9-based Universal Base Images (UBI) that are FIPS-compliant. This means that running Containers will be RHEL-based and FIPS-compliant.
Strimzi
Strimzi as well as components managed by Strimzi are FIPS 140-2/3 compliant by default and run in FIPS mode automatically in FIPS-enabled environments.
When deployed on a FIPS-enabled cluster, the OpenJDK in the Containers of Strimzi automatically activates its FIPS mode. This requires no explicit configuration for Strimzi, it automatically uses the FIPS-compliant cryptographic libraries built into its Java runtime. Inserting additional security providers is not required.
Strimzi is also responsible for managing Kafka and Cruise Control. When deployed in FIPS mode, Strimzi generates keystores, truststores, and configuration files for these components in a FIPS-compatible way. Running Kafka or Cruise Control in FIPS mode does not require any explicit configuration, and additional security providers are not required.
Cloudera Surveyor
Cloudera Surveyor supports running in a FIPS 140-2/3 compliant manner. However, FIPS mode is disabled by default and must be explicitly enabled.
Enabling FIPS mode enforces strict security controls and changes the configuration of Cloudera Surveyor in the following ways:
- 
    
The Java runtime is configured to use a FIPS‑capable cryptographic provider first so that cryptographic operations use FIPS‑approved implementations.
 - 
    
All TLS truststores must be in the BCFKS (Bouncy Castle FIPS Keystore) format and must be password-protected.
 - 
    
The security settings of the Java Virtual Machine are adjusted so the runtime uses FIPS‑approved algorithms and a cryptographically strong source of randomness.
 
If required, you can also configure the use of additional, custom security providers. These must be mounted to the Cloudera Surveyor Container.
Enabling FIPS mode for Cloudera Surveyor
Enable FIPS mode for Cloudera Surveyor by setting the fipsMode property to true in your values file.
#...
fipsMode: true
        Configuring additional FIPS security providers in Cloudera Surveyor
Cloudera Surveyor integrates and uses a FIPS-compliant security provider when FIPS mode is enabled. If required, you can mount additional custom security providers and configure Cloudera Surveyor to use them.
- 
                    
A volume that contains necessary provider JARs must be available. The volume should support RWX.
 - 
                    
The following steps use CryptoComply for Java (CCJ) SafeLogic - Java JCE Provider as an example.
 
Limitations
FIPS mode in Cloudera Streams Messaging - Kubernetes Operator has limitations for Strimzi and Kafka.
Strimzi
- 
      
JMX authentication – Password-based authentication for JMX is not supported in FIPS mode. This forces you to expose JMX without authentication, creating significant security risks.
 - 
      
JMX Trans compatibility – The JMX Trans tool is outdated and does not support Java 17. The Strimzi container image for JMX Trans uses Java 11, which lacks the improved FIPS support found in modern OpenJDK versions, creating compatibility and security issues.
 
Kafka
The following FIPS mode limitations are valid for Kafka:
- 
     
For systems employing Simple Authentication and Security Layer (SASL), Cloudera recommends explicitly select a strong mechanism such as SCRAM-SHA-512 to ensure FIPS compatibility by default.
 - 
     
In environments where required security algorithms are unavailable, some SASL mechanisms, such as PLAIN, as selected authentication might fail. Although client-side configurations can sometimes serve as a workaround, Cloudera does not recommend client-side configuration workarounds. Client-side modifications might introduce non-compliant cryptographic modules or policies, which could compromise the FIPS compatibility of the entire cluster. Always use a fully FIPS-compliant mechanism instead.
 
