Para usar a CLI da AWS, primeiro verifique se as credenciais e chave de acesso da AWS estão configuradas corretamente.
Depois de ter seu AWS access_key_id
e secret_access_key
, você pode adicioná-los manualmente ao arquivo de credenciais ou usar o comando aws configure
para configurá-lo em sua máquina local.
Este tutorial explica todas as opções disponíveis no comando aws configure
, além de como gerenciar vários perfis:
Tabela de Conteúdo
- Primeira configuração de credenciais da AWS - perfil padrão
- Diretório
~/.aws
- Arquivo de configuração e credenciais para o perfil padrão - Editar credenciais do perfil padrão - Conecte-se a diferentes contas da AWS
- Crie vários perfis da AWS - Dev and Prod
- Diretório
~/.aws
- Arquivo de configuração e credenciais para vários perfis (Dev e Prod) - Alternando entre diferentes perfis da AWS usando a opção
--profile
- Alternando entre diferentes perfis da AWS usando a variável env
AWS_PROFILE
- Exibir informações do perfil usando a opção
list
- Alterar a configuração padrão do arquivo de credenciais
FileName
eLocation
- Exibir um valor de parâmetro de perfil específico usando a opção
get
- Defina um valor de parâmetro de perfil específico usando a opção
set
- Adicionando novos modelos usando a opção
add-model
1. Primeira configuração de credenciais da AWS - perfil padrão
Ao executar o comando aws configure
sem nenhum argumento, você configurará as credenciais do aws como seu perfil padrão.
$ aws configure
AWS Access Key ID [None]: AAABBBCCCDDDEEEFFFGG
AWS Secret Access Key [None]: aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn
Default region name [None]: us-east-1
Default output format [None]: text
No exemplo acima:
- [None]: Indica que você não possui nenhuma configuração de identificação de chave de acesso / chave de acesso secreta existente no sistema para o perfil padrão e solicitará novos valores.
-
Region Name: Isso é opcional. Se você deixar isso em branco, você deverá especificar a região em todos os seus comandos da AWS CLI usando o parâmetro
--region
, caso contrário, receberá uma mensagem de erro. - Output: Isso é opcional. Se você deixar em branco, a saída de toda a AWS CLI estará no formato json. As opções de saída disponíveis são: json, text, table
2. Diretório ~/.aws
- Arquivo de configuração e credenciais para o perfil padrão
Quando você executa o aws configure pela primeira vez, ele criará o diretório ~/.aws, se ele não existir, no diretório inicial com os dois arquivos a seguir:
$ ls -1 ~/.aws
config
credentials
$ cat ~/.aws/config
[default]
region = us-east-1
output = text
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AAABBBCCCDDDEEEFFFGG
aws_secret_access_key = aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn
No exemplo acima:
- ~/.aws/credentials - Isso conterá seu access_key_id e secret_access_key
- ~/.aws/config - Isso conterá informações de configuração não relacionadas à credenciais, tais como region e output
- [default] - Esta seção indica que esses valores pertencem ao perfil padrão. Lembre-se de que você pode ter mais de um perfil configurado, o que permitirá a execução de comandos AWS CLI em diferentes contas da AWS, conforme mostrado nos exemplos abaixo.
3. Editar credenciais do perfil padrão - Conecte-se a diferentes contas da AWS
Se você deseja se conectar a uma conta AWS diferente na sua CLI, você pode alterar as credenciais de perfil padrão existentes executando o comando "aws configure" novamente.
$ aws configure
AWS Access Key ID [****************FFGG]: ZZZZZZCCCDDDEEEFFFZZ
AWS Secret Access Key [****************mmmn]: zzzzzzcccdddeeefffggghhhiiijjjkkklllmmzz
Default region name [us-east-1]: us-west-2
Default output format [text]: json
$ cat ~/.aws/config
[default]
region = us-west-2
output = json
Nota:
- Ao solicitar access_key_id e secret_access_key, será mostrado os 4 últimos caracteres dos valores existentes dentro do []
- Se você pressionar enter sem fornecer nenhum novo valor, ele apenas manterá os valores existentes e não mudará nada.
4. Crie vários perfis da AWS - Dev and Prod
Ao conectar-se a várias contas da AWS usando apenas o perfil padrão, você vai continuar alterando os valores de access_key_id e secret_access_key, o que não é prático.
Nesse caso, você pode criar vários perfis.
Digamos que você precise usar os comandos na AWS CLI para acessar sua conta AWS-dev e conta AWS-prod. Nesse caso, crie um perfil de desenvolvimento e um perfil de produção, conforme explicado abaixo.
Primeiro, crie um perfil de desenvolvedor, use os valores access_key_id e secret_access_key da sua conta AWS-dev:
$ aws configure --profile dev
AWS Access Key ID [None]: DEVBBBCCCDDDEEEFFDEV
AWS Secret Access Key [None]: devbbbcccdddeeefffggghhhiiijjjkkklllmdev
Default region name [None]: us-east-1
Default output format [None]:
Em seguida, crie um perfil de produção, use os valores access_key_id e secret_access_key da sua conta AWS-prod:
$ aws configure --profile prod
AWS Access Key ID [None]: PRODBBCCCDDDEEEFPROD
AWS Secret Access Key [None]: prodbbcccdddeeefffggghhhiiijjjkkklllprod
Default region name [None]: us-west-2
Default output format [None]:
5. Diretório ~/.aws
- Arquivo de configuração e credenciais para vários perfis (Dev e Prod)
Após adicionar novos perfis adicionais (dev e prod), agora temos um total de 3 perfis, incluindo o perfil padrão, conforme mostrado abaixo nos arquivos de configuração.
$ cat ~/.aws/config
[default]
region = us-east-1
output = text
[profile dev]
region = us-east-1
[profile prod]
region = us-west-2
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AAABBBCCCDDDEEEFFFGG
aws_secret_access_key = aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn
[dev]
aws_access_key_id = DEVBBBCCCDDDEEEFFDEV
aws_secret_access_key = devbbbcccdddeeefffggghhhiiijjjkkklllmdev
[prod]
aws_access_key_id = PRODBBCCCDDDEEEFPROD
aws_secret_access_key = prodbbcccdddeeefffggghhhiiijjjkkklllprod
No exemplo acima:
- [default] - contém as informações das credenciais quando usamos o comando 'aws configure' pela primeira vez/sem nenhum parâmetro. Este é o nosso perfil padrão. Não temos um nome para este perfil.
- [dev] - Esta seção contém credenciais do perfil do desenvolvedor.
- [prod] - Esta seção contém credenciais do perfil do prod.
6. Alternando entre diferentes perfis da AWS usando a opção --profile
Por padrão, a AWS CLI usará credenciais do perfil padrão. Por exemplo, o comando a seguir listará todos os volumes EBS usando suas credenciais do perfil padrão.
$ aws ec2 describe-volumes
Se você deseja se conectar a uma conta diferente da AWS. Por exemplo, sua conta AWS-dev, use o perfil de desenvolvedor, como mostrado abaixo:
$ aws ec2 describe-volumes --profile dev
O seguinte será conectado ao perfil do prod:
$ aws ec2 describe-volumes --profile prod
Observe que os seguintes comandos são exatamente os mesmos. Ambos usarão o perfil padrão:
$ aws ec2 describe-volumes
$ aws ec2 describe-volumes --profile default
Nota:
- A opção --profile pode ser usada com todos os comandos da AWS CLI.
Em uma observação relacionada, para iniciar uma instância do EC2 a partir da CLI, consulte: Como iniciar uma instância do Amazon AWS EC2 com UserData a partir da CLI
7. Alternando entre diferentes perfis da AWS usando a variável env AWS_PROFILE
Especificar a opção de perfil em todo comando na sua CLI pode ser um pouco complicado. Para evitar isso, você pode definir seu perfil usando a variável de ambiente AWS_PROFILE.
Primeiro, defina seu AWS_PROFILE para conectar-se à conta AWS-dev.
export AWS_PROFILE=dev
A partir de agora, todos os comandos da AWS CLI que você executar se conectarão à conta AWS-dev. Você não precisa mais especificar a opção --profile
Os comandos a seguir usarão credenciais de perfil de desenvolvedor (não as credenciais padrão), pois definimos AWS_PROFILE como dev.
$ aws ec2 describe-volumes
$ aws ec2 describe-instances
$ aws s3 ls
$ ...
Se você deseja se conectar à conta AWS-prod, basta definir o AWS_PROFILE como prod, como mostrado abaixo.
$ export AWS_PROFILE=prod
Após definer o perfil, os comandos a seguir usarão as credenciais do perfil do prod para se conectar à sua conta do AWS-prod.
$ aws ec2 describe-volumes
$ aws ec2 describe-instances
$ aws s3 ls
$ ...
Depois de definir como dev ou prod e se você deseja se conectar à conta da AWS que aponta para o perfil padrão, você tem duas opções.
Você pode definir AWS_PROFILE como padrão, como mostrado abaixo.
export AWS_PROFILE=default
Ou, você pode simplesmente desabilitar a variável de ambiente AWS_PROFILE, que começará automaticamente a usar o perfil padrão.
unset AWS_PROFILE
Após remover a variável, os comandos a seguir usarão credenciais do perfil padrão para conectar-se à sua conta da AWS.
$ aws ec2 describe-volumes
$ aws ec2 describe-instances
$ aws s3 ls
$ ...
8. Exibir informações do perfil usando a opção list
A maneira mais fácil de visualizar todos os perfis que você configurou em seu sistema é exibir o conteúdo dos arquivos de configuração e credenciais.
$ cat ~/.aws/config
$ cat ~/.aws/credentials
A opção list
no comando aws configure
exibirá as informações sobre o perfil atual, como mostrado abaixo.
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile None None
access_key ****************FFGG shared-credentials-file
secret_key ****************mmmn shared-credentials-file
region us-east-1 config-file ~/.aws/config
No perfil acima, a primeira linha exibe qual perfil você está usando. Na coluna "Value" da 1ª linha (ou seja, para o perfil), diz "", isso indica que atualmente você está conectado ao perfil "default".
Se você alterar o perfil para "prod", verá a coluna "Value" da 1ª linha dizendo "prod", como mostrado abaixo.
$ export AWS_PROFILE=prod
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile prod manual --profile
Você também pode passar o nome do perfil para visualizar as informações do perfil sem alterar seu perfil atual, como mostrado abaixo
$ aws configure list --profile dev
9. Alterar a configuração padrão do arquivo de credenciais FileName
e Location
Ao invés do padrão ~/.aws/config e ~/.aws/credenciais, você também pode usar um local e um nome de arquivo diferente usando as seguintes variáveis de ambiente:
- AWS_SHARED_CREDENTIALS_FILE - Defina esse valor como o nome do arquivo que contém suas credenciais da AWS.
- AWS_CONFIG_FILE - Defina esse valor como o nome do arquivo que contém as informações de configuração do seu perfil da AWS.
Por exemplo:
$ export AWS_SHARED_CREDENTIALS_FILE=/var/tmp/mycredentials
$ export AWS_CONFIG_FILE=/var/tmp/myconfig
Depois de definir os valores acima, todos os comandos da AWS CLI começarão a usar perfis e credenciais correspondentes dos arquivos no local acima:
$ aws ec2 describe-volumes
$ aws ec2 describe-instances
$ aws s3 ls
$ ...
Na saída a seguir, a coluna "Location" da última linha (region) indica qual arquivo de configuração está sendo usado.
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile None None
access_key ****************FFGG shared-credentials-file
secret_key ****************mmmn shared-credentials-file
region us-east-1 config-file /var/tmp/myconfig
10. Exibir um valor de parâmetro de perfil específico usando a opção get
Se você deseja exibir apenas um valor do seu arquivo de configuração ou credenciais, use a opção get nos comandos aws configure usando a seguinte sintaxe.
O comando get é útil se você estiver escrevendo algo e quiser obter informações de perfil dentro do seu shell script.
$ aws configure get varname [--profile profile-name]
Na saída a seguir, apenas será exibido o access_key_id do perfil atual.
$ aws configure get aws_access_key_id
AAABBBCCCDDDEEEFFFGG
Você também pode usar qualquer um dos seguintes:
$ aws configure get aws_access_key_id
$ aws configure get aws_secret_access_key
$ aws configure get region
$ aws configure get output
Você também pode especificar o nome do perfil, como mostrado abaixo:
$ aws configure get dev.aws_secret_access_key
$ aws configure get prod.aws_secret_access_key
11. Defina um valor de parâmetro de perfil específico usando a opção set
Os comandos get e set do aws configure podem ser úteis, se você estiver escrevendo um script shell para manipular os valores dos seus arquivos de configuração / credenciais.
Sintaxe:
$ aws configure set varname value [--profile profile-name]
Você pode apenas definir o valor de um parâmetro específico, como mostrado abaixo.
$ aws configure set region us-east-2
Você pode definir os valores de qualquer um dos seguintes parâmetros:
$ aws configure set aws_access_key_id NEWABBCCCDDDEEEFPNEW
$ aws configure set aws_secret_access_key newdbbcccdddeeefffggghhhiiijjjkkklllpnew
$ aws configure set region us-east-2
$ aws configure set output json
Você também pode especificar o nome do perfil, como mostrado abaixo:
$ aws configure set dev.region us-east-2
$ aws configure set prod.output json
12. Adicionar novo modelo usando a opção add-model
Você pode adicionar modelos com base nas informações de um arquivo json.
Por exemplo, se você tiver uma versão da AWS CLI que não possui o Amazon Polly, poderá reinstalar a AWS CLI para obter o Polly.
Ou você pode fazer o download do arquivo de modelo do Polly e usar a opção add-model em aws configure, como mostrado abaixo.
$ aws configure add-model --service-model file:///var/tmp/polly.json
O comando acima criará o diretório ~/.aws/models e criará o seguinte subdiretório com base nas informações do arquivo json fornecido.
$ ls -l ~/.aws/models/polly/2016-06-10/service-2.json
A seguir, são apresentadas as primeiras linhas do arquivo json que foram usadas no exemplo acima.
$ head -10 ~/.aws/models/polly/2016-06-10/service-2.json
{
"version":"2.0",
"metadata":{
"apiVersion":"2016-06-10",
"endpointPrefix":"polly",
"protocol":"rest-json",
"serviceFullName":"Amazon Polly",
"serviceId":"Polly",
"signatureVersion":"v4",
"uid":"polly-2016-06-10"
O arquivo acima é o mesmo que usamos durante nosso comando add-model.
$ diff -w ~/.aws/models/polly/2016-06-10/service-2.json /var/tmp/polly.json
Você também pode especificar um nome de serviço diferente passando o parâmetro --service-name, como mostrado abaixo.
$ aws configure add-model --service-model file:///var/tmp/custom.json --service-name mycustom
O comando acima criará um subdiretório em ~/.aws/models com o nome do serviço que você especificou como mostrado abaixo.
$ ls -l ~/.aws/models/mycustom/2016-06-10/service-2.json
Créditos
- 15 AWS Configure Command Examples to Manage Multiple Profiles for CLI, escrito originalmente por Ramesh Natarajan
Top comments (0)