Authentication and access credentials
You must establish how the Amazon CLI authenticates with Amazon when you develop with Amazon services. To configure credentials for programmatic access for the Amazon CLI, choose one of the following options. The options are in order of recommendation.
Configuration and credential precedence
Credentials and configuration settings are located in multiple places, such as the system or user environment variables, local Amazon configuration files, or explicitly declared on the command line as a parameter. Certain locations take precedence over others. The Amazon CLI credentials and configuration settings take precedence in the following order:
-
Command line options – Overrides settings in any other location, such as the
--region
,--output
, and--profile
parameters. -
Environment variables – You can store values in your system's environment variables.
-
Assume role – Assume the permissions of an IAM role through configuration or the
aws sts assume-role
command. -
Assume role with web identity – Assume the permissions of an IAM role using web identity through configuration or the
aws sts assume-role
command. -
Amazon IAM Identity Center (successor to Amazon Single Sign-On) – The IAM Identity Center credentials are stored in the
config
file and are updated when you run theaws configure sso
command. Theconfig
file is located at~/.aws/config
on Linux or macOS, or atC:\Users\
on Windows.USERNAME
\.aws\config -
Credentials file – The
credentials
andconfig
file are updated when you run the commandaws configure
. Thecredentials
file is located at~/.aws/credentials
on Linux or macOS, or atC:\Users\
on Windows.USERNAME
\.aws\credentials -
Custom process – Get your credentials from an external source.
-
Configuration file – The
credentials
andconfig
file are updated when you run the commandaws configure
. Theconfig
file is located at~/.aws/config
on Linux or macOS, or atC:\Users\
on Windows.USERNAME
\.aws\config -
Amazon EC2 instance profile credentials – You can associate an IAM role with each of your Amazon Elastic Compute Cloud (Amazon EC2) instances. Temporary credentials for that role are then available to code running in the instance. The credentials are delivered through the Amazon EC2 metadata service. For more information, see IAM Roles for Amazon EC2 in the Amazon EC2 User Guide for Linux Instances and Using Instance Profiles in the IAM User Guide.
-
Container credentials – You can associate an IAM role with each of your Amazon Elastic Container Service (Amazon ECS) task definitions. Temporary credentials for that role are then available to that task's containers. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.