Skip to content

Commit e131a9c

Browse files
authored
Merge pull request #34098 from hashicorp/s3/d-reconfigure
backend/s3: Document need to reconfigure backend when updating Terraform
2 parents 5020282 + 3092809 commit e131a9c

File tree

1 file changed

+55
-0
lines changed
  • website/docs/language/upgrade-guides

1 file changed

+55
-0
lines changed

website/docs/language/upgrade-guides/index.mdx

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ but there are some behavior changes outside of those promises that may affect a
1515
small number of users. Specifically, the following updates may require
1616
additional upgrade steps:
1717
* [End of experimental period for `terraform test`](#terraform-test)
18+
* [Deprecated parameters for the S3 backend](#s3-backend)
1819

1920
See [the full changelog](https://github.com/hashicorp/terraform/blob/v1.6/CHANGELOG.md)
2021
for more details. If you encounter any problems during upgrading which are not
@@ -132,3 +133,57 @@ run "test_defaults" {
132133
The above examples demonstrates the differences in layout, scope and access between the two approaches. In the experimental framework, access is granted as if the configuration was being called like a normal module call. In the released framework, assertions execute as if they are custom conditions defined within the main configuration directly.
133134

134135
The `run` block also applies or plans the main configuration by default, there is no need for the specific module call seen in the experimental framework.
136+
137+
## S3 Backend
138+
139+
We updated the S3 backend in Terraform 1.6.0 so that it more closely matches the AWS provider configuration.
140+
As a result, the backend has new and deprecated fields.
141+
Refer to the [release notes](https://github.com/hashicorp/terraform/releases/tag/v1.6.0) for additional information.
142+
143+
The major deprecations are discussed here.
144+
Refer to the [S3 backend documentation](/terraform/language/settings/backends/s3) for information about all deprecations.
145+
146+
We removed the configuration for assuming an IAM role from several top-level attributes and consolidated them into the `assume_role` attribute.
147+
148+
The following example shows the configuration in Terraform 1.5.6 and older for assuming the IAM role `arn:aws:iam::123456789012:role/example` with a session name `example-session` and a session duration of 15 minutes:
149+
150+
```hcl
151+
terraform {
152+
backend "s3" {
153+
# additional configuration omitted for brevity
154+
role_arn = "arn:aws:iam::123456789012:role/example"
155+
session_name = "example-session"
156+
assume_role_duration_seconds = 900
157+
}
158+
}
159+
```
160+
161+
The configuration in Terraform 1.6.0 is:
162+
163+
```hcl
164+
terraform {
165+
backend "s3" {
166+
# additional configuration omitted for brevity
167+
assume_role = {
168+
role_arn = "arn:aws:iam::123456789012:role/example"
169+
session_name = "example-session"
170+
duration = "15m"
171+
}
172+
}
173+
}
174+
```
175+
176+
We removed the configuration for overriding AWS API endpoints from several top-level attributes and consolidated them into the `endpoints` attribute.
177+
The following endpoint attributes are now nested under the `endpoint` attribute:
178+
179+
- `s3`
180+
- `dynamodb`
181+
- `iam`
182+
- `sts`
183+
184+
The `endpoint` attribute replaces the following top-level attributes:
185+
186+
- `endpoint` (for S3),
187+
- `dynamodb_endpoint`,
188+
- `iam_endpoint`
189+
- `sts_endpoint`

0 commit comments

Comments
 (0)