Variáveis de ambiente para configurar a AWS CLI - AWS Command Line Interface

Variáveis de ambiente para configurar a AWS CLI

Variáveis de ambiente fornecem outra maneira de especificar opções de configuração e credenciais e podem ser úteis para criação de scripts ou configuração temporária de um perfil nomeado como o padrão.

Precedência de opções
  • Se você especificar uma opção usando uma das variáveis de ambiente descritas nesse tópico, ela substituirá qualquer valor carregado de um perfil no arquivo de configuração.

  • Se você especificar uma opção usando um parâmetro na linha de comando da AWS CLI, ela sobrescreverá qualquer valor da variável de ambiente correspondente ou de um perfil no arquivo de configuração.

Para obter mais informações sobre precedência e como a AWS CLI determina quais credenciais usar, consulte Configurar o AWS CLI.

Como definir variáveis de ambiente

Os exemplos a seguir mostram como configurar variáveis de ambiente para o usuário padrão.

Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_DEFAULT_REGION=us-west-2

Configurar a variável de ambiente altera o valor usado até o final da sua sessão de shell ou até que você defina a variável como um valor diferente. Você pode tornar as variáveis persistentes em sessões futuras definindo-as no script de inicialização do shell.

Windows Command Prompt

Como definir para todas as sessões

C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_DEFAULT_REGION us-west-2

O uso de setx para definir uma variável de ambiente altera o valor usado na sessão de prompt de comando atual e todas as sessões de prompt de comando que você criar após a execução do comando. Não afeta outros shells de comando que já estejam em execução no momento em que você executar o comando. Talvez seja necessário reiniciar o terminal para que as configurações sejam carregadas.

Como definir somente para a sessão atual

O uso de set para definir uma variável de ambiente altera o valor usado até o final da sessão de prompt de comando atual ou até que você defina a variável como um valor diferente.

C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> set AWS_DEFAULT_REGION=us-west-2
PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

Se você definir uma variável de ambiente no prompt do PowerShell conforme mostrado nos exemplos anteriores, ela salvará o valor somente pela duração da sessão atual. Para fazer com que a configuração da variável de ambiente seja persistente em todas as sessões do prompt de comando e do PowerShell, armazene-a usando o aplicativo System (Sistema) no Control Panel (Painel de controle). Como alternativa, você pode definir a variável para todas as futuras sessões do PowerShell adicionando-a ao seu perfil do PowerShell. Consulte a documentação do PowerShell para obter mais informações sobre como armazenar variáveis de ambiente ou como persisti-las nas sessões.

Variáveis de ambiente compatíveis da AWS CLI

A AWS CLI é compatível com as seguintes variáveis de ambiente.

AWS_ACCESS_KEY_ID

Especifica uma chave de acesso da AWS associada a uma conta do IAM.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil aws_access_key_id. Você não pode especificar o ID de chave de acesso com uma opção de linha de comando.

AWS_CA_BUNDLE

Especifica o caminho para um pacote de certificado a ser usado para a validação de certificado HTTPS.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil ca_bundle. Você pode substituir essa variável de ambiente usando o parâmetro de linha de comando --ca-bundle.

AWS_CLI_AUTO_PROMPT

Habilita o prompt automático para a AWS CLI versão 2. Há duas configurações que podem ser usadas:

  • on usa o modo de prompt automático completo cada vez que você tenta executa um comando da aws. Isso inclui pressionar ENTER após um comando completo ou um comando incompleto.

  • on-partial usa o modo de prompt automático parcial. Se um comando estiver incompleto ou não puder ser executado devido a erros de validação do lado do cliente, o prompt automático será usado. Esse modo é particularmente útil se você tem scripts pré-existentes, runbooks ou se deseja receber o prompt automático somente para comandos com os quais você não está familiarizado, em vez de ver o prompt para todos os comandos.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil cli_auto_prompt. Você pode sobrescrever essa variável de ambiente usando os parâmetros de linha de comando --cli-auto-prompt e --no-cli-auto-prompt.

Para obter informações sobre o recurso de prompt automático da AWS CLI versão 2, consulte Fazer a AWS CLI solicitar comandos.

AWS_CLI_FILE_ENCODING

Especifica a codificação usada para arquivos de texto. Por padrão, a codificação corresponde à sua localidade. Para definir uma codificação diferente da localidade, use a variável de ambiente aws_cli_file_encoding. Por exemplo, se você usar o Windows com a codificação padrão CP1252, a configuração de aws_cli_file_encoding=UTF-8 definirá a CLI para abrir arquivos de texto usando UTF-8.

AWS_CONFIG_FILE

Especifica o local do arquivo que a AWS CLI usa para armazenar perfis de configuração. O caminho padrão é ~/.aws/config.

Você não pode especificar esse valor em uma configuração de perfil nomeado nem usando um parâmetro de linha de comando.

AWS_DATA_PATH

Uma lista de diretórios adicionais a serem verificados fora do caminho de pesquisa interno do ~/.aws/models ao carregar dados da AWS CLI. A definição dessa variável de ambiente indica os diretórios adicionais a serem verificados primeiro antes de voltar para os caminhos de pesquisa internos. Várias entradas devem ser separadas com o caractere os.pathsep, que é : no Linux ou no macOS e ; no Windows.

AWS_DEFAULT_OUTPUT

Especifica o formato de saída a ser usado.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil output. Você pode substituir essa variável de ambiente usando o parâmetro de linha de comando --output.

AWS_DEFAULT_REGION

O Default region name identifica a região da AWS dos servidores para os quais você deseja enviar suas solicitações por padrão. Normalmente, é a região mais próxima de você, mas pode ser qualquer região. Por exemplo, você pode digitar us-west-2 para usar a região Oeste dos EUA (Oregon). Essa é a região para a qual todas as solicitações posteriores são enviadas, a menos que você especifique o contrário em um comando individual.

nota

Você deve especificar uma região da AWS ao usar a AWS CLI, explicitamente ou definindo uma região padrão. Para obter uma lista das regiões disponíveis, consulte Regiões e endpoints Os designadores de região usados pela AWS CLI têm os mesmos nomes que você vê nos URLs nos endpoints de serviço do AWS Management Console.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil region. Você pode substituir essa variável de ambiente usando o parâmetro de linha de comando --region e a variável de ambiente compatível com o AWS SDK AWS_REGION.

AWS_EC2_METADATA_DISABLED

Desabilita o uso do serviço de metadados da instância do Amazon EC2 (IMDS).

Se definido como true, as credenciais do usuário ou a configuração (como a região) não são solicitadas do IMDS.

AWS_ENDPOINT_URL

Especifica o endpoint usado para todas as solicitações de serviço.

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.

AWS_ENDPOINT_URL_<SERVICE>

Especifica um endpoint personalizado usado para um serviço específico, onde <SERVICE> é substituído pelo identificador AWS service (Serviço da AWS). Por exemplo, Amazon DynamoDB tem um serviceId do DynamoDB. Para esse serviço, a variável de ambiente do URL do endpoint é AWS_ENDPOINT_URL_DYNAMODB.

Para obter uma lista de todas as variáveis de ambiente específicas do serviço, consulte Lista de identificadores específicos de serviço.

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.

AWS_IGNORE_CONFIGURED_ENDPOINT_URLS

Se habilitada, a AWS CLI ignora todas as configurações personalizadas de endpoint. Os valores válidos são true e false.

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.

AWS_MAX_ATTEMPTS

Especifica um valor para o máximo de novas tentativas utilizadas pelo manipulador de novas tentativas da AWS CLI, onde a chamada inicial conta para o valor fornecido por você. Para obter mais informações sobre novas tentativas, consulte Novas tentativas da AWS CLI.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil max_attempts.

AWS_METADATA_SERVICE_NUM_ATTEMPTS

Ao tentar recuperar credenciais em uma instância do Amazon EC2 que foi configurada com uma função do IAM, a AWS CLI fará apenas uma tentativa para recuperar as credenciais do serviço de metadados da instância antes de interromper. Se souber que seus comandos serão executados em uma instância do Amazon EC2, você poderá aumentar esse valor para possibilitar que a AWS CLI faça várias tentativas antes de desistir.

AWS_METADATA_SERVICE_TIMEOUT

O número de segundos antes de uma conexão ao serviço de metadados da instância atingir o tempo limite. Ao tentar recuperar credenciais em uma instância do Amazon EC2 que foi configurada com uma função do IAM, por padrão uma conexão ao serviço de metadados da instância atingirá o tempo limite depois de um segundo. Se souber que está executando em uma instância do Amazon EC2 com uma função do IAM configurada, você poderá aumentar esse valor, se necessário.

AWS_PAGER

Especifica o programa de paginação usado para saída. Por padrão, a AWS CLI versão 2 retorna toda a saída pelo programa de paginação padrão do sistema operacional.

Para desabilitar todos os usos de um programa de paginação externo, defina a variável como uma string vazia.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil cli_pager.

AWS_PROFILE

Especifica o nome do perfil da AWS CLI com as credenciais e as opções a serem usadas. Esse pode ser o nome de um perfil armazenado em um arquivo credentials ou config ou o valor default para usar o perfil padrão.

Se você especificar essa variável de ambiente, ela substituirá o comportamento de usar o perfil nomeado [default] no arquivo de configuração. Você pode substituir essa variável de ambiente usando o parâmetro de linha de comando --profile.

AWS_REGION

A variável de ambiente compatível com o AWS SDK que especifica a região da AWS para a qual enviar a solicitação.

Se definida, essa variável de ambiente substituirá os valores da variável de ambiente AWS_DEFAULT_REGION e a configuração do perfil region. Você pode substituir essa variável de ambiente usando o parâmetro de linha de comando --region.

AWS_RETRY_MODE

Especifica qual modo de repetição a AWS CLI utiliza. Existem três modos de repetição disponíveis: herdado (o modo usado por padrão), padrão e adaptive. Para obter mais informações sobre novas tentativas, consulte Novas tentativas da AWS CLI.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil retry_mode.

AWS_ROLE_ARN

Especifica o nome do recurso da Amazon (ARN) de uma função do IAM com um provedor de identidade da Web que você deseja usar para executar os comandos da AWS CLI.

Usado com as variáveis de ambiente AWS_WEB_IDENTITY_TOKEN_FILE e AWS_ROLE_SESSION_NAME.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil role_arn. Você não pode especificar um nome de sessão de função como um parâmetro de linha de comando.

nota

Essa variável de ambiente se aplica somente a uma função assumida com o provedor de identidade da Web, mas não se aplica à configuração do provedor de função assumida geral.

Para obter mais informações sobre o uso de identidades da Web, consulte Assumir a função com a identidade da web.

AWS_ROLE_SESSION_NAME

Especifica o nome a ser associado à sessão da função. Esse valor é fornecido ao parâmetro RoleSessionName quando a AWS CLI chama a operação AssumeRole e se torna parte do ARN do usuário da função assumida: arn:aws:sts::123456789012:assumed-role/role_name/role_session_name. Esse parâmetro é opcional. Se você não fornecer esse valor, um nome de sessão será gerado automaticamente. Esse nome aparece nos logs do AWS CloudTrail para entradas associadas a essa sessão.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil role_session_name.

Usado com as variáveis de ambiente AWS_ROLE_ARN e AWS_WEB_IDENTITY_TOKEN_FILE.

Para obter mais informações sobre o uso de identidades da Web, consulte Assumir a função com a identidade da web.

nota

Essa variável de ambiente se aplica somente a uma função assumida com o provedor de identidade da Web, mas não se aplica à configuração do provedor de função assumida geral.

AWS_SECRET_ACCESS_KEY

Especifica a chave secreta associada à chave de acesso. Essencialmente, essa é a “senha” para a chave de acesso.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil aws_secret_access_key. Você não pode especificar o ID chave de acesso secreta como uma opção de linha de comando.

AWS_SESSION_TOKEN

Especifica o valor de token de sessão que é necessário se você estiver usando credenciais de segurança temporárias recuperadas diretamente das operações do AWS STS. Para obter mais informações, consulte a Seção de saída do comando assume-role na Referência de comandos da AWS CLI.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil aws_session_token.

AWS_SHARED_CREDENTIALS_FILE

Especifica o local do arquivo que a AWS CLI usa para armazenar chaves de acesso. O caminho padrão é ~/.aws/credentials.

Você não pode especificar esse valor em uma configuração de perfil nomeado nem usando um parâmetro de linha de comando.

AWS_USE_DUALSTACK_ENDPOINT

Permite o uso de endpoints de pilha dupla para enviar solicitações da AWS. Para saber mais sobre endpoints de pilha dupla, que suportam tráfego IPv4 e IPv6, consulte Como usar endpoints de pilha dupla do Amazon S3 no Guia do usuário do Amazon Simple Storage Service. Endpoints de pilha dupla estão disponíveis para alguns serviços em algumas regiões. Se não existir um endpoint de pilha dupla para o serviço ou Região da AWS, a solicitação falhará. Ela fica desabilitada por padrão.

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.

AWS_USE_FIPS_ENDPOINT

Alguns serviços da AWS oferecem endpoints compatíveis com o Federal Information Processing Standard (FIPS) 140-2 em algumas Regiões da AWS. Quando o serviço da AWS é compatível com o FIPS, essa configuração especifica qual endpoint do FIPS a AWS CLI deve usar. Ao contrário dos endpoints-padrão da AWS, os endpoints do FIPS usam uma biblioteca de software TLS compatível com o FIPS 140-2. Esses endpoints podem ser necessários por empresas que interagem com o governo dos Estados Unidos.

Se essa configuração estiver ativada, mas não existir um endpoint FIPS para o serviço em sua Região da AWS, o comando AWS poderá falhar. Nesse caso, especifique manualmente o endpoint a ser usado no comando usando a opção --endpoint-url ou use endpoints específicos do serviço.

Para saber mais sobre como especificar endpoints FIPS por Região da AWS, consulte Endpoints FIPS por serviço.

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.

AWS_WEB_IDENTITY_TOKEN_FILE

Especifica o caminho para um arquivo que contém um token de acesso OAuth 2.0 ou token de ID OpenID Connect fornecido por um provedor de identidade. A AWS CLI carrega o conteúdo desse arquivo e o transmite como o argumento WebIdentityToken para a operação AssumeRoleWithWebIdentity.

Usado com as variáveis de ambiente AWS_ROLE_ARN e AWS_ROLE_SESSION_NAME.

Se definida, essa variável de ambiente sobrescreverá o valor da configuração de perfil web_identity_token_file.

Para obter mais informações sobre o uso de identidades da Web, consulte Assumir a função com a identidade da web.

nota

Essa variável de ambiente se aplica somente a uma função assumida com o provedor de identidade da Web, mas não se aplica à configuração do provedor de função assumida geral.