Target Image(s)
dhi.io/fluentd (currently: 1.19.x, debian-13)
Problem Statement
Fluentd is widely deployed as the log collector in regulated environments where FIPS 140-2 / 140-3 validated cryptography is a hard requirement. The current dhi.io/fluentd image uses standard OpenSSL 3.x (libssl3) but does not activate the OpenSSL FIPS provider, so it cannot be used in environments that mandate FIPS-only cryptography.
Affected use cases include:
- TLS connections to log destinations (Elasticsearch, S3, Kafka, Splunk HEC) over HTTPS/TLS
- TLS client authentication in fluent-plugin-secure-forward / in_forward with TLS
- Any crypto performed by Ruby's
openssl gem at runtime (digest, cipher, HMAC)
Fluentd is a Ruby application and delegates all cryptographic operations to the system openssl gem, which in turn links against the system libssl. OpenSSL 3.x ships a FIPS provider (openssl-provider-fips) that can be activated via configuration with no recompilation of Ruby or Fluentd gems required.
Proposed Solution
Add a FIPS variant for the dhi.io/fluentd debian-13 runtime and dev images, producing tags such as:
1-debian13-fips, 1.19-debian13-fips, 1.19.3-debian13-fips
1-debian13-fips-dev, 1.19-debian13-fips-dev
The implementation would follow the existing DHI FIPS pattern for OpenSSL-backed images:
- Include the
openssl-provider-fips package
- Configure OpenSSL to load the FIPS provider and set
default_properties = fips=yes
- Set
OPENSSL_CONF and OPENSSL_MODULES environment variables accordingly
- Add a smoke-test that verifies FIPS mode is active at image build time (e.g.
ruby -e "require 'openssl'; raise unless OpenSSL.fips_mode")
Additional Context
Benefits
- Enables Fluentd to be deployed in FedRAMP-moderate/high and DoD IL4/IL5 environments that enforce FIPS-only cryptography
- Consistent with the DHI approach of providing compliance-ready variants alongside standard runtime/dev images
- No change to the non-FIPS image or its behavior, purely additive
Pre-submission Checklist
Target Image(s)
dhi.io/fluentd (currently: 1.19.x, debian-13)
Problem Statement
Fluentd is widely deployed as the log collector in regulated environments where FIPS 140-2 / 140-3 validated cryptography is a hard requirement. The current
dhi.io/fluentdimage uses standard OpenSSL 3.x (libssl3) but does not activate the OpenSSL FIPS provider, so it cannot be used in environments that mandate FIPS-only cryptography.Affected use cases include:
opensslgem at runtime (digest, cipher, HMAC)Fluentd is a Ruby application and delegates all cryptographic operations to the system
opensslgem, which in turn links against the system libssl. OpenSSL 3.x ships a FIPS provider (openssl-provider-fips) that can be activated via configuration with no recompilation of Ruby or Fluentd gems required.Proposed Solution
Add a FIPS variant for the
dhi.io/fluentddebian-13 runtime and dev images, producing tags such as:1-debian13-fips,1.19-debian13-fips,1.19.3-debian13-fips1-debian13-fips-dev,1.19-debian13-fips-devThe implementation would follow the existing DHI FIPS pattern for OpenSSL-backed images:
openssl-provider-fipspackagedefault_properties = fips=yesOPENSSL_CONFandOPENSSL_MODULESenvironment variables accordinglyruby -e "require 'openssl'; raise unless OpenSSL.fips_mode")Additional Context
OpenSSL.fips_modeAPI: https://ruby.github.io/openssl/OpenSSL.html#method-c-fips_modefluentd-kubernetes-daemonsetimage family would benefit from a follow-on FIPS pass once the base fluentd FIPS image is establishedBenefits
Pre-submission Checklist