Location of the shared config and credentials files - AWS SDKs and Tools

Location of the shared config and credentials files

The shared AWS config and credentials files are plaintext files that hold configuration information for the AWS SDKs and tools. The files reside locally in your environment and used automatically by SDK code or by AWS CLI commands that you run in that environment. For example, on your own computer or when developing on an Amazon Elastic Compute Cloud instance.

When the SDK or tool runs, it checks for these files and loads any available configuration settings. If the files do not already exist, then a basic file is automatically created by the SDK or tool.

By default, the files are in a folder named .aws that is placed in your home or user folder.

Operating system Default location and name of files
Linux and macOS

~/.aws/config

~/.aws/credentials

Windows

%USERPROFILE%\.aws\config

%USERPROFILE%\.aws\credentials

Home directory resolution

~ is only used for home directory resolution when it:

  • Starts the path

  • Is followed immediately by / or a platform specific separator. On windows, ~/ and ~\ both resolve to the home directory.

When determining the home directory, the following variables are checked:

  • (All platforms) The HOME environment variable

  • (Windows platforms) The USERPROFILE environment variable

  • (Windows platforms) The concatenation of HOMEDRIVE and HOMEPATH environment variables ($HOMEDRIVE$HOMEPATH)

  • (Optional per SDK or tool) An SDK or tool-specific home path resolution function or variable

When possible, if a user's home directory is specified at the start of the path (for example, ~username/), it is resolved to the requested user name's home directory (for example, /home/username/.aws/config).

Change the default location of these files

You can use any of the following to override where these files are loaded from by the SDK or tool.

Use environment variables

The following environment variables can be set to change the location or name of these files from the default to a custom value:

  • config file environment variable: AWS_CONFIG_FILE

  • credentials file environment variable: AWS_SHARED_CREDENTIALS_FILE

Linux/macOS

You can specify an alternate location by running the following export commands on Linux or macOS.

$ export AWS_CONFIG_FILE=/some/file/path/on/the/system/config-file-name $ export AWS_SHARED_CREDENTIALS_FILE=/some/other/file/path/on/the/system/credentials-file-name
Windows

You can specify an alternate location by running the following setx commands on Windows.

C:\> setx AWS_CONFIG_FILE c:\some\file\path\on\the\system\config-file-name C:\> setx AWS_SHARED_CREDENTIALS_FILE c:\some\other\file\path\on\the\system\credentials-file-name

For more information on configuring your system using environment variables, see Environment variables support.

Use JVM system properties

For the SDK for Kotlin running on the JVM and for SDK for Java 2.x, you can set the following JVM system properties to change the location or name of these files from the default to a custom value:

  • config file JVM system property: aws.configFile

  • credentials file environment variable: aws.sharedCredentialsFile

For instructions on how to set JVM system properties, see How to set JVM system properties. The SDK for Java 1.x does not support these system properties.