Skip to main content
logoTetrate Istio SubscriptionVersion: Next

TIS1701 - Compliance Policy Is Missing, Invalid, or Not Set to Enforce FIPS 140-2 Requirements

The COMPLIANCE_POLICY environment variable is missing, invalid, or not configured to enforce FIPS 140-2 requirements. When COMPLIANCE_POLICY=fips-140-2 is correctly set (e.g., on the istiod deployment), Istio restricts TLS to version 1.2 and limits the cipher suites to FIPS-approved algorithms, ensuring strict FIPS mode.

Recommendation: Set COMPLIANCE_POLICY=fips-140-2

By setting the COMPLIANCE_POLICY environment variable to fips-140-2, Istio ensures TLS 1.2 is used exclusively, with FIPS-approved ciphers. This enforces strict FIPS compliance across both inbound and outbound traffic. For more information, refer to the Configure TID in Strict FIPS Mode.

Examples

  1. istiod Deployment Missing COMPLIANCE_POLICY

    # Excerpt from Helm values or deployment manifest
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: istiod
    namespace: istio-system
    spec:
    template:
    spec:
    containers:
    - name: discovery
    env:
    # Missing COMPLIANCE_POLICY environment variable
    # ...

    Explanation: Without COMPLIANCE_POLICY=fips-140-2, TLS could be negotiated up to TLS 1.3 or down to versions that are not FIPS-approved, failing to meet FIPS 140-2 compliance requirements.

  2. COMPLIANCE_POLICY Set Incorrectly

    helm upgrade --install istiod tetratelabs/istiod -n istio-system \
    --set global.tag=${TAG} \
    --set "pilot.env.COMPLIANCE_POLICY=some-other-value" \
    --version ${VERSION} \
    --wait

    Explanation: Here, pilot.env.COMPLIANCE_POLICY is set to something other than fips-140-2. The strict FIPS mode is not enabled, so the cluster may still allow TLS versions or ciphers that are non-FIPS-compliant.

Recommendation

  1. Set the COMPLIANCE_POLICY Environment Variable to fips-140-2

    Ensure the istiod deployment (pilot) is properly configured:

    helm upgrade --install istiod tetratelabs/istiod -n istio-system \
    --set global.tag=${TAG} \
    --set "pilot.env.COMPLIANCE_POLICY=fips-140-2" \
    --version ${VERSION} \
    --wait

    This restricts TLS to version 1.2 and enforces only FIPS-approved cipher suites within Istio.