Which TWO of the following are valid modes for PeerAuthentication?
Trap 1: ENABLED
ENABLED is not a valid PeerAuthentication mode; Istio defines only PERMISSIVE, STRICT and UNSET. It is tempting because ENABLED suggests turning mutual TLS on, which is what STRICT actually does by rejecting plaintext traffic, so the correct literal value is STRICT, not ENABLED.
Trap 2: OPTIONAL
OPTIONAL is not a recognised PeerAuthentication mode; the valid values are PERMISSIVE, STRICT and UNSET. It is tempting because OPTIONAL sounds like PERMISSIVE, which accepts both plaintext and mTLS traffic, but the API field requires the literal PERMISSIVE keyword rather than OPTIONAL.
Trap 3: DISABLED
DISABLED is not a valid PeerAuthentication mode; Istio accepts only PERMISSIVE, STRICT and UNSET. It is tempting because disabling mutual TLS entirely sounds like a plausible way to exempt a workload, but that is achieved by omitting the policy or using PERMISSIVE, not a DISABLED value.
- A
ENABLED
Why it fails: ENABLED is not a valid PeerAuthentication mode; Istio defines only PERMISSIVE, STRICT and UNSET. It is tempting because ENABLED suggests turning mutual TLS on, which is what STRICT actually does by rejecting plaintext traffic, so the correct literal value is STRICT, not ENABLED.
- B
OPTIONAL
Why it fails: OPTIONAL is not a recognised PeerAuthentication mode; the valid values are PERMISSIVE, STRICT and UNSET. It is tempting because OPTIONAL sounds like PERMISSIVE, which accepts both plaintext and mTLS traffic, but the API field requires the literal PERMISSIVE keyword rather than OPTIONAL.
- C
STRICT
STRICT enforces mutual TLS on all inbound traffic, rejecting plaintext connections outright. This satisfies the scenario's requirement for hardened service-to-service authentication within the mesh, since PeerAuthentication's mTLS mode field accepts STRICT, PERMISSIVE, or DISABLE — STRICT being the only value that guarantees encryption and identity verification for every request.
- D
PERMISSIVE
PERMISSIVE is a valid PeerAuthentication mode, alongside STRICT and DISABLE. It accepts both mutual TLS and plaintext traffic on the same workload, satisfying the stem's requirement for legitimate modes. This flexibility supports gradual mesh migration, where services not yet injected with sidecars can still communicate during rollout.
- E
DISABLED
Why it fails: DISABLED is not a valid PeerAuthentication mode; Istio accepts only PERMISSIVE, STRICT and UNSET. It is tempting because disabling mutual TLS entirely sounds like a plausible way to exempt a workload, but that is achieved by omitting the policy or using PERMISSIVE, not a DISABLED value.