Skip to content

Commit 52de702

Browse files
mfernestmicheleRPclaude
authored
docs(DOC-1834, DOC-1841): FIPS Docker image, 140-3 update, and style fixes (#1630)
Co-authored-by: micheleRP <michele@redpanda.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1d492ec commit 52de702

2 files changed

Lines changed: 109 additions & 25 deletions

File tree

modules/get-started/pages/release-notes/redpanda.adoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ This topic includes new content added in version {page-component-version}. For a
77
* xref:redpanda-cloud:get-started:whats-new-cloud.adoc[]
88
* xref:redpanda-cloud:get-started:cloud-overview.adoc#redpanda-cloud-vs-self-managed-feature-compatibility[Redpanda Cloud vs Self-Managed feature compatibility]
99
10+
== FIPS 140-3 validation and FIPS Docker image
11+
12+
Redpanda's cryptographic module has been upgraded from FIPS 140-2 to https://csrc.nist.gov/pubs/fips/140-3/final[FIPS 140-3^] validation. Additionally, Redpanda now provides a FIPS-specific Docker image (`docker.redpanda.com/redpandadata/redpanda:<version>-fips`) for `amd64` and `arm64` architectures, with the required OpenSSL FIPS module pre-configured.
13+
14+
NOTE: If you are upgrading with FIPS mode enabled, ensure all SASL/SCRAM user passwords are at least 14 characters before upgrading. FIPS 140-3 enforces stricter HMAC key size requirements.
15+
16+
See xref:manage:security/fips-compliance.adoc[] for configuration details.
17+
1018
== Iceberg: Expanded JSON Schema support
1119

1220
Redpanda now supports additional JSON Schema patterns when translating to Iceberg tables:
Lines changed: 101 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
= Configure Redpanda for FIPS
2-
:description: Configure Redpanda to operate in FIPS compliance mode.
1+
= Configure Redpanda for FIPS
2+
:description: Configure Redpanda to operate in FIPS-compliant mode.
33
:page-aliases: security:fips-compliance.adoc
4+
:page-topic-type: how-to
5+
:personas: platform_operator
6+
:learning-objective-1: Configure a Redpanda broker to run in FIPS-compliant mode
7+
:learning-objective-2: Set the required OpenSSL properties for FIPS mode
8+
:learning-objective-3: Deploy Redpanda in FIPS-compliant mode using Docker
49

5-
Redpanda provides FIPS-compliant cipher enforcement for brokers using OpenSSL 3.0.9, which is https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4282[validated^] for https://csrc.nist.gov/pubs/fips/140-2/upd2/final[140-2^] and is undergoing validation by NIST for https://csrc.nist.gov/pubs/fips/140-3/final[140-3^]. Both Redpanda and `rpk` leverage validated OpenSSL libraries for all security-related cryptography operations.
10+
Redpanda provides Federal Information Processing Standards (FIPS)-compliant cipher enforcement for brokers using a https://csrc.nist.gov/pubs/fips/140-3/final[FIPS 140-3^]-validated OpenSSL cryptographic module. Redpanda and `rpk` both use the OpenSSL library for security-related cryptographic operations.
11+
12+
After reading this page, you will be able to:
13+
14+
* [ ] {learning-objective-1}
15+
* [ ] {learning-objective-2}
16+
* [ ] {learning-objective-3}
617
718
[NOTE]
819
====
@@ -18,19 +29,27 @@ rpk cluster license info
1829

1930
== Prerequisites
2031

21-
Before configuring brokers to run in FIPS compliance mode (FIPS mode), check to make sure the `redpanda-rpk-fips` and `redpanda-fips` packages are xref:deploy:deployment-option/self-hosted/manual/production/production-deployment.adoc#install-redpanda-for-fips-compliance[installed]. These packages are required by both the `redpanda` and `redpanda-tuner` install packages.
32+
Before configuring brokers to run in FIPS mode on Linux, install the `redpanda-rpk-fips` and `redpanda-fips` xref:deploy:redpanda/manual/production/production-deployment.adoc#install-redpanda-for-fips-compliance[packages].
33+
34+
For Docker deployments, use the FIPS-specific image instead: `docker.redpanda.com/redpandadata/redpanda:<version>-fips`.
35+
36+
[WARNING]
37+
====
38+
Before upgrading to Redpanda 26.1 with FIPS mode enabled, change any SASL/SCRAM user passwords shorter than 14 characters to at least 14 characters. FIPS 140-3 enforces stricter HMAC key size requirements than FIPS 140-2. Because Redpanda stores passwords in encrypted form, it cannot check the length of existing passwords. Clients with passwords shorter than 14 characters will fail to authenticate after the upgrade.
39+
====
2240

2341
== Limitations
2442

25-
- Redpanda is not fully FIPS-compliant when used with the Redpanda Helm chart and Operator in a Kubernetes deployment.
43+
- Redpanda FIPS mode requires a FIPS-enabled host when deployed with the Redpanda Helm chart or Operator.
2644
- Redpanda Console is not FIPS-compliant.
27-
- PKCS#12 keys for xref:manage:security/encryption.adoc[TLS encryption] are not supported when FIPS mode is enabled in Redpanda. The PKCS12KDF algorithm used in PKCS#12 is not FIPS-compliant. To use Redpanda in FIPS mode with TLS enabled, configure your certificates and keys in PEM format instead.
45+
- Redpanda does not support PKCS#12 keys for xref:manage:security/encryption.adoc[TLS encryption] when FIPS mode is enabled. The PKCS12KDF algorithm used in PKCS#12 is not FIPS-compliant. To use Redpanda in FIPS mode with TLS enabled, configure your certificates and keys in PEM format instead.
46+
- When FIPS mode is `enabled` or `permissive`, SASL/SCRAM passwords must be at least 14 characters.
2847

2948
== Configure FIPS mode
3049

3150
When you configure a broker to run in FIPS mode:
3251

33-
* FIPS compliance is enforced _immediately_ upon the startup of Redpanda.
52+
* Redpanda enforces FIPS compliance _immediately_ on startup.
3453

3554
* Redpanda and its dependencies only use FIPS-validated cryptographic modules for all cryptographic algorithms used in a security context.
3655

@@ -42,43 +61,100 @@ Redpanda logs an error and exits immediately if:
4261

4362
* It cannot detect a FIPS-validated library.
4463

45-
To place a broker in FIPS compliance mode, enable xref:reference:properties/broker-properties.adoc#fips_mode[`fips_mode`] in the Redpanda broker configuration file (typically located in `/etc/redpanda/redpanda.yaml`). All fields are within the `redpanda` object:
64+
To place a broker in FIPS-compliant mode, enable xref:reference:properties/broker-properties.adoc#fips_mode[`fips_mode`] in the Redpanda broker configuration file (typically located in `/etc/redpanda/redpanda.yaml`). All fields are within the `redpanda` object:
4665

47-
```yaml
66+
[,yaml]
67+
----
4868
redpanda:
4969
# ....
5070
fips_mode: enabled
51-
```
71+
----
5272

5373
Available `fips_mode` values are:
5474

55-
* `disabled`: Redpanda is not running in FIPS compliance mode.
75+
* `disabled`: Redpanda is not running in FIPS-compliant mode.
5676

5777
* `enabled`: When Redpanda starts up, it looks for a value of `1` in the file `/proc/sys/crypto/fips_enabled`. If the file doesn't exist or doesn't contain `1`, Redpanda logs an error and exits immediately.
5878

59-
* `permissive`: This setting is a safety value option only, and _should not be used in a production environment_. If specified, Redpanda logs a WARNING, but continues operations even if the underlying operating system is not configured for FIPS. If set, your Redpanda instance is _not_ running in FIPS compliance mode.
79+
* `permissive`: This setting is a safety value option only. Do not use it in a production environment. If specified, Redpanda logs a WARNING, but continues operations even if the underlying operating system is not configured for FIPS. If set, your Redpanda instance is _not_ running in FIPS-compliant mode.
80+
81+
You must also configure OpenSSL properties for FIPS mode.
6082

6183
=== FIPS OpenSSL configuration
6284

63-
You must specify the following SSL configurations for brokers you want to run in FIPS compliance mode:
85+
You must specify the following SSL configurations for brokers you want to run in FIPS-compliant mode:
6486

65-
* xref:reference:properties/broker-properties.adoc#openssl_config_file[`openssl_config_file`]: Specifies the path to the OpenSSL configuration file that was created as part of the `redpanda-fips` package installation. This file is used when OpenSSL is initialized to find the `fipsmodule.cnf` file that was created by the `openssl fipsinstall` command. Typically, this value should be `/opt/redpanda/openssl/openssl.cnf`.
87+
* xref:reference:properties/broker-properties.adoc#openssl_config_file[`openssl_config_file`]: Specifies the path to the OpenSSL configuration file created during `redpanda-fips` package installation. OpenSSL uses this file during initialization to find the `fipsmodule.cnf` file that `openssl fipsinstall` creates. Typically, this value is `/opt/redpanda/openssl/openssl.cnf`.
6688

67-
* xref:reference:properties/broker-properties.adoc#openssl_module_directory[`openssl_module_directory`]: Specifies the path to the directory that contains the `fips.so` cryptographic provider. Typically, this value should be: `/opt/redpanda/lib/ossl-modules/`.
89+
* xref:reference:properties/broker-properties.adoc#openssl_module_directory[`openssl_module_directory`]: Specifies the path to the directory that contains the `fips.so` cryptographic provider. Typically, this value is: `/opt/redpanda/lib/ossl-modules/`.
6890
+
69-
The following configuration starts Redpanda in FIPS mode:
91+
The following configuration starts Redpanda in FIPS mode:
7092
+
71-
```yaml
93+
[,yaml]
94+
----
7295
redpanda:
7396
# ....
7497
fips_mode: enabled
7598
openssl_config_file: /opt/redpanda/openssl/openssl.cnf
7699
openssl_module_directory: /opt/redpanda/lib/ossl-modules/
77-
```
78-
79-
== Suggested reading
80-
81-
* xref:deploy:deployment-option/self-hosted/manual/production/production-deployment.adoc#install-redpanda-for-fips-compliance[Install Redpanda for FIPS Compliance]
82-
* https://github.com/openssl/openssl/blob/openssl-3.0.9/README-FIPS.md[OpenSSL FIPS Readme^]
83-
* https://www.openssl.org/docs/man3.0/man7/fips_module.html[OpenSSL fips_module^]
84-
* https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp4282.pdf[OpenSSL FIPS Security Policy^]
100+
----
101+
102+
== Configure FIPS mode with Docker
103+
104+
The Redpanda FIPS Docker image (`docker.redpanda.com/redpandadata/redpanda:<version>-fips`) is available for `amd64` and `arm64` architectures. The image includes the required OpenSSL files, pre-configured.
105+
106+
Pass the FIPS broker configuration to the container the same way as any other Redpanda Docker deployment: either by mounting a configuration file or by passing settings as flags.
107+
108+
[tabs]
109+
======
110+
Mount a configuration file::
111+
+
112+
--
113+
. Create a `redpanda.yaml` with the required FIPS settings:
114+
+
115+
[,yaml]
116+
----
117+
redpanda:
118+
fips_mode: enabled
119+
openssl_config_file: /opt/redpanda/openssl/openssl.cnf
120+
openssl_module_directory: /opt/redpanda/lib/ossl-modules/
121+
----
122+
123+
. Mount the file when starting the container:
124+
+
125+
[,bash]
126+
----
127+
docker run -d \
128+
--name=redpanda \
129+
-p 9092:9092 \
130+
-p 9644:9644 \
131+
-v /path/to/redpanda.yaml:/etc/redpanda/redpanda.yaml \
132+
docker.redpanda.com/redpandadata/redpanda:<version>-fips \
133+
redpanda start --overprovisioned --smp 1
134+
----
135+
--
136+
Pass settings as flags::
137+
+
138+
--
139+
Pass the FIPS settings directly to `redpanda start`:
140+
141+
[,bash]
142+
----
143+
docker run -d \
144+
--name=redpanda \
145+
-p 9092:9092 \
146+
-p 9644:9644 \
147+
docker.redpanda.com/redpandadata/redpanda:<version>-fips \
148+
redpanda start --overprovisioned --smp 1 \
149+
--set redpanda.fips_mode=enabled \
150+
--set redpanda.openssl_config_file=/opt/redpanda/openssl/openssl.cnf \
151+
--set redpanda.openssl_module_directory=/opt/redpanda/lib/ossl-modules/
152+
----
153+
--
154+
======
155+
156+
== Next steps
157+
158+
* xref:deploy:redpanda/manual/production/production-deployment.adoc#install-redpanda-for-fips-compliance[Install Redpanda for FIPS Compliance]
159+
// TODO: Confirm OpenSSL version and FIPS 140-3 certificate number with engineering (ENG-307). Update links below accordingly.
160+
* https://github.com/openssl/openssl/blob/master/README-FIPS.md[OpenSSL FIPS Readme^]

0 commit comments

Comments
 (0)