<a id="cli-aws-configure-set"></a>

# set

## Description

Set a configuration value from the config file.

The `aws configure set` command can be used to set a single configuration
value in the AWS config file.  The `set` command supports both the
*qualified* and *unqualified* config values documented in the `get` command
(see `aws configure get help` for more information).

To set a single value, provide the configuration name followed by the
configuration value.

If the config file does not exist, one will automatically be created.  If the
configuration value already exists in the config file, it will updated with the
new configuration value.

Setting a value for the `aws_access_key_id`, `aws_secret_access_key`, or
the `aws_session_token` will result in the value being written to the
shared credentials file (`~/.aws/credentials`).  All other values will
be written to the config file (default location is `~/.aws/config`).

## Synopsis

```bash
aws configure set varname value [--profile profile-name]
```

## Options

`varname` (string)
The name of the config value to set.

`value` (string)
The value to set.

`--sso-session` | `--services` (string)
The name of the sub-section to configure.

## Global Options

`--debug` (boolean)

Turn on debug logging.

`--endpoint-url` (string)

Override command’s default URL with the given URL.

`--no-verify-ssl` (boolean)

By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.

`--no-paginate` (boolean)

Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.

`--output` (string)

The formatting style for command output.

* json
* text
* table
* yaml
* yaml-stream
* off

`--query` (string)

A JMESPath query to use in filtering the response data.

`--profile` (string)

Use a specific profile from your credential file.

`--region` (string)

The region to use. Overrides config/env settings.

`--version` (string)

Display the version of this tool.

`--color` (string)

Turn on/off color output.

* on
* off
* auto

`--no-sign-request` (boolean)

Do not sign requests. Credentials will not be loaded if this argument is provided.

`--ca-bundle` (string)

The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.

`--cli-read-timeout` (int)

The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.

`--cli-connect-timeout` (int)

The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.

`--cli-binary-format` (string)

The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob `fileb://` will always be treated as binary and use the file contents directly regardless of the `cli-binary-format` setting. When using `file://` the file contents will need to properly formatted for the configured `cli-binary-format`.

* base64
* raw-in-base64-out

`--no-cli-pager` (boolean)

Disable cli pager for output.

`--cli-auto-prompt` (boolean)

Automatically prompt for CLI input parameters.

`--no-cli-auto-prompt` (boolean)

Disable automatically prompt for CLI input parameters.

`--cli-error-format` (string)

The formatting style for error output. By default, errors are displayed in enhanced format.

* legacy
* json
* yaml
* text
* table
* enhanced

`--help` (boolean)

Display help for the command/subcommand.

## Examples

**To set configuration values**

The following `set` example sets configuration values. Given an empty config file, run the following commands.

```bash
aws configure set aws_access_key_id default_access_key
aws configure set aws_secret_access_key default_secret_key
aws configure set default.region us-west-2
aws configure set default.ca_bundle /path/to/ca-bundle.pem
aws configure set region us-west-1 \
    --profile testing
aws configure set profile.testing2.region eu-west-1
```

This command produces no output.

These commands produce the following config file:

```
[default]
region = us-west-2
ca_bundle = /path/to/ca-bundle.pem

[profile testing]
region = us-west-1

[profile testing2]
region = eu-west-1
```

and the following `~/.aws/credentials` file:

```
[default]
aws_access_key_id = default_access_key
aws_secret_access_key = default_secret_key
```

To perform bulk profiles update `list-profiles` command can be piped with `set` command.
To update the region for all profiles, use the following command.

```bash
aws configure list-profiles | xargs -I {} aws configure set region us-west-2 --profile {}
```

will produce the following updated config file:

```
[default]
region = us-west-2
ca_bundle = /path/to/ca-bundle.pem

[profile testing]
region = us-west-2

[profile testing2]
region = us-west-2
```

To update the profiles that match the pattern “testing\*”, use the following command.

```bash
aws configure list-profiles | grep 'testing*' | xargs -I {} aws configure set cli_pager '' --profile {}
```

will produce the following updated config file:

```
[default]
region = us-west-2
ca_bundle = /path/to/ca-bundle.pem

[profile testing]
region = us-west-2
cli_pager =

[profile testing2]
region = us-west-2
cli_pager =
```

To set a parameter in a sub-section, use one of the available sub-section parameters (`--services` or `--sso-session`).

For example, to set the `sso_start_url` in the `my-sso-session` SSO session sub-section, use the following command.

```bash
aws configure set sso_start_url https://my-sso-portal.awsapps.com/start \
    --sso-session my-sso-session
```

To set a nested property, use dotted notation for the parameter name along with a sub-section parameter.
For example, to set a service-specific endpoint URL for EC2 in a services sub-section called `my-services`, use the following command.

```bash
aws configure set ec2.endpoint_url http://localhost:4567 \
    --services my-services
```

For more information, see [Configuration and credential file settings in the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) in the *AWS CLI User Guide*.
