Client Settingsedit

The client used to connect to S3 has a number of settings available. Client setting names are of the form s3.client.CLIENT_NAME.SETTING_NAME. The default client name, which is looked up by an s3 repository, is called default. It can be modified using the repository setting client. For example:

PUT _snapshot/my_s3_repository
  "type": "s3",
  "settings": {
    "bucket": "my_bucket",
    "client": "my_alternate_client"

Most client settings are specified inside elasticsearch.yml, but some are sensitive and must be stored in the elasticsearch keystore.

For example, before you start the node, run these commands to add AWS access key settings to the keystore:

bin/elasticsearch-keystore add s3.client.default.access_key
bin/elasticsearch-keystore add s3.client.default.secret_key

All client secure settings of this plugin are reloadable. After you reload the settings, the internal s3 clients, used to transfer the snapshot contents, will utilize the latest settings from the keystore. Any existing s3 repositories, as well as any newly created ones, will pick up the new values stored in the keystore.


In progress snapshot/restore tasks will not be preempted by a reload of the client’s secure settings. The task will complete using the client as it was built when the operation started.

The following is the list of all the available client settings. Those that must be stored in the keystore are marked as Secure and are reloadable.

An s3 access key. The secret_key setting must also be specified. (Secure)
An s3 secret key. The access_key setting must also be specified. (Secure)
An s3 session token. The access_key and secret_key settings must also be specified. (Secure)
The s3 service endpoint to connect to. This will be automatically figured out by the s3 client based on the bucket location, but can be specified explicitly. See
The protocol to use to connect to s3. Valid values are either http or https. Defaults to https.
The host name of a proxy to connect to s3 through.
The port of a proxy to connect to s3 through.
The username to connect to the with. (Secure)
The password to connect to the with. (Secure)
The socket timeout for connecting to s3. The value should specify the unit. For example, a value of 5s specifies a 5 second timeout. The default value is 50 seconds.
The number of retries to use when an s3 request fails. The default value is 3.
Whether retries should be throttled (ie use backoff). Must be true or false. Defaults to true.