A pipeline using the S3 backend sets AWS_USE_FIPS_ENDPOINT=1 so state traffic goes to FIPS endpoints. After an upgrade to Terraform 1.15, the backend no longer uses the FIPS endpoint. Which change restores the intended behavior?
Select an answer to reveal the explanation.
Short Explanation
Your pipeline was saying '1' and 1.15 now only understands 'true'. Same intent, new vocabulary. That's exactly the kind of thing upgrade notes are for, so you change the value to true. The trap is TF_VAR_, which sets input variables, not backend environment settings.
Full Explanation
The Terraform 1.15 upgrade notes for the S3 backend state that the AWS_USE_FIPS_ENDPOINT and AWS_USE_DUALSTACK_ENDPOINT environment variables now respect only true or false values, aligning with the AWS SDK for Go. Before 1.15, any non-empty value, including 1, was treated as true. After the upgrade, a value of 1 is no longer interpreted as enabling the setting, so the backend falls back to standard endpoints. Changing the value to true restores FIPS endpoint use. The variable is a boolean switch, not an endpoint address, so setting it to a hostname is not respected either; custom endpoints belong in the backend's endpoints settings. The TF_VAR_ prefix sets values for Terraform input variables declared in the root module; it does not configure backend environment settings, and backend blocks cannot use input variables anyway. Reinitializing with -reconfigure discards the saved backend configuration and initializes again without migrating state, but it does not change endpoint defaults, which do not enable FIPS. The backend's use_fips_endpoint argument or a shared AWS config file can set the same behavior without the environment variable. Exam caveat: environment-variable behavior changes are easy to miss because nothing in the configuration files changes. Operational check: set the variable to true, run terraform init in a test environment with network logging, and confirm requests go to the FIPS endpoint before rolling the change to prod.