|
1 | 1 | pr: 126843 |
2 | 2 | summary: Upgrade `repository-s3` to AWS SDK v2 |
3 | 3 | area: Snapshot/Restore |
4 | | -type: "breaking, upgrade" |
| 4 | +type: breaking |
5 | 5 | issues: |
6 | 6 | - 120993 |
7 | | -highlight: |
8 | | - title: Upgrade `repository-s3` to AWS SDK v2 |
9 | | - body: "Closes #120993" |
10 | | - notable: true |
11 | 7 | breaking: |
12 | 8 | title: Upgrade `repository-s3` to AWS SDK v2 |
13 | | - area: Snapshot/Restore |
14 | | - details: Please describe the details of this change for the release notes. You can |
15 | | - use asciidoc. |
16 | | - impact: Please describe the impact of this change to users |
17 | | - notable: false |
| 9 | + area: Cluster and node setting |
| 10 | + details: >- |
| 11 | +
|
| 12 | + In earlier versions of {es} the `repository-s3` plugin was based on the AWS |
| 13 | + SDK v1. AWS will withdraw support for this SDK before the end of the life |
| 14 | + of {es} {minor-version} so we must migrate to the newer AWS SDK v2. |
| 15 | +
|
| 16 | + Unfortunately there are several differences between the two AWS SDK |
| 17 | + versions which may require you to adjust your system configuration when |
| 18 | + upgrading to {es} {minor-version} or later. These differences include, but |
| 19 | + may not be limited to, the following items. |
| 20 | +
|
| 21 | + * AWS SDK v2 requires users to specify the region to use for signing |
| 22 | + requests, or else to run in an environment in which it can determine the |
| 23 | + correct region automatically. The older SDK would try to determine the |
| 24 | + region based on the endpoint URL as specified with the |
| 25 | + `s3.client.${CLIENT_NAME}.endpoint` setting, together with other data |
| 26 | + drawn from the operating environment, and would ultimately fall back to |
| 27 | + `us-east-1` if no better value could be found. |
| 28 | +
|
| 29 | + * AWS SDK v2 does not support the EC2 IMDSv1 protocol. |
| 30 | +
|
| 31 | + * AWS SDK v2 does not support the |
| 32 | + `com.amazonaws.sdk.ec2MetadataServiceEndpointOverride` system property. |
| 33 | +
|
| 34 | + * AWS SDK v2 does not permit specifying a choice between HTTP and HTTPS so |
| 35 | + the `s3.client.${CLIENT_NAME}.protocol` setting is deprecated and no longer |
| 36 | + has any effect. |
| 37 | +
|
| 38 | + * AWS SDK v2 does not permit control over throttling for retries, so the |
| 39 | + the `s3.client.${CLIENT_NAME}.use_throttle_retries` setting is deprecated |
| 40 | + and no longer has any effect. |
| 41 | +
|
| 42 | + * AWS SDK v2 requires the use of the V4 signature algorithm, so the |
| 43 | + `s3.client.${CLIENT_NAME}.signer_override` setting is deprecated and no |
| 44 | + longer has any effect. |
| 45 | +
|
| 46 | + * AWS SDK v2 does not support the `log-delivery-write` canned ACL. |
| 47 | +
|
| 48 | + * AWS SDK v2 counts 4xx responses differently in its metrics reporting. |
| 49 | +
|
| 50 | + * AWS SDK v2 always uses the regional STS endpoint, whereas AWS SDK v2 |
| 51 | + could use either a regional endpoint or the global |
| 52 | + `https://sts.amazonaws.com` one. |
| 53 | +
|
| 54 | + impact: >- |
| 55 | +
|
| 56 | + If you use the `repository-s3` module, test your upgrade thoroughly before |
| 57 | + upgrading any production workloads. |
| 58 | +
|
| 59 | + Adapt your configuration to the new SDK functionality. This includes, but |
| 60 | + may not be limited to, the following items. |
| 61 | +
|
| 62 | + * Specify the correct signing region using the |
| 63 | + `s3.client.${CLIENT_NAME}.region` setting on each node. {es} will try and |
| 64 | + determine the correct region based on the endpoint URL and other data |
| 65 | + drawn from the operating environment but cannot guarantee to do so |
| 66 | + correctly in all cases. |
| 67 | +
|
| 68 | + * If you use IMDS to determine the availability zone of a node or to obtain |
| 69 | + credentials for accessing the EC2 API, ensure that it supports the IMDSv2 |
| 70 | + protocol. |
| 71 | +
|
| 72 | + * If applicable, discontinue use of the |
| 73 | + `com.amazonaws.sdk.ec2MetadataServiceEndpointOverride` system property. |
| 74 | +
|
| 75 | + * If applicable, specify that you wish to use the insecure HTTP protocol to |
| 76 | + access the S3 API by setting `s3.client.${CLIENT_NAME}.endpoint` to a URL |
| 77 | + which starts with `http://`. |
| 78 | +
|
| 79 | + * If applicable, discontinue use of the `log-delivery-write` canned ACL. |
| 80 | +
|
| 81 | + notable: true |
0 commit comments