Praticar de graça

🔑Entenda o Configurar a AWS CLI

A CLI precisa de três respostas antes de qualquer comando: quem é você (a credencial), onde (a região) e em que formato responder. Cada conjunto dessas respostas é um perfil — e um terminal bem configurado tem vários: um pra cada conta, ambiente ou papel.

Pra que serve

É a dúvida número um de quem começa: "Unable to locate credentials", "You must specify a region", "The config profile could not be found", "The security token included in the request is invalid". Quem entende perfil resolve tudo isso em segundos — e troca de conta com um --profile, sem apagar nada.

Onde se usa no mundo real

Vocabulário

Perfil
um conjunto nomeado de credencial + região + formato. O default é o que vale sem --profile.
~/.aws/config
o arquivo com região, formato, role e SSO de cada perfil.
~/.aws/credentials
o arquivo com as chaves de acesso. É segredo: nunca vai pro git.
Chave de acesso
AccessKeyId + SecretAccessKey de um usuário IAM. Longa duração — por isso se rotaciona.
assume-role
trocar de identidade por uma role, com credencial temporária (Access Key começa com ASIA).
SSO / aws login
login pelo navegador que entrega credencial temporária, sem chave guardada em arquivo.
💰 Como cobra: Configurar a CLI não custa nada. O que custa é errar a conta: um delete no perfil errado é o incidente mais comum de quem tem várias contas. Comparando: chave de acesso x SSO — a chave vale até alguém apagar (e vaza em repositório); a credencial do SSO expira em horas e é o padrão recomendado nas empresas.

Comandos que você aprende nesta trilha

Cada um deles roda de verdade no terminal do CLImb, com a mesma saída e as mesmas mensagens de erro que a AWS devolve.

aws configure list

USO

aws configure list [--profile <perfil>]

aws sts get-caller-identity

aws sts get-caller-identity

aws sts get-caller-identity

aws configure list-profiles

USO

aws configure list-profiles

aws iam create-user

aws iam create-user

aws iam create-user --user-name <nome>

aws iam create-access-key

USO

aws iam create-access-key --user-name robo-deploy

aws configure set

USO

aws configure set <chave> <valor> [--profile <perfil>]

aws ec2 describe-instances

aws ec2 describe-instances

aws ec2 describe-instances

aws configure get

USO

aws configure get <chave> [--profile <perfil>]

aws iam update-access-key

USO

aws iam update-access-key --user-name robo-deploy --access-key-id AKIA... --status Inactive

aws iam create-role

criar papel (role)

aws iam create-role --role-name <nome>
--assume-role-policy-document file://<trust.json>

aws sts assume-role

USO

aws sts assume-role --role-arn <arn-da-role> --role-session-name <nome> [--duration-seconds 900-3600]

aws sso login

USO

aws sso login --profile <perfil>

aws sso logout

USO

aws sso logout

O que você pratica (25 atividades)

Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.

Quem é você nesse terminal?

Primeiro dia no emprego novo: te deram um terminal já configurado. Antes de rodar qualquer coisa, descubra com que credencial e em que região ele está falando.

Com quem a AWS acha que está falando?

O configure list diz o que está no arquivo; a AWS pode discordar. Pergunte pra ela qual identidade (usuário e conta) está por trás deste terminal.

Que perfis existem?

Um terminal pode falar com várias contas, uma por perfil. Liste os perfis configurados.

Onde isso fica guardado

A configuração mora em dois arquivos na sua pasta pessoal. Leia o ~/.aws/config — é onde ficam a região e o formato de cada perfil.

O usuário do robô de relatórios

O robô que gera relatórios vai ter credencial própria, separada da sua. Crie o usuário IAM bot-relatorios.

A chave do robô

Crie uma chave de acesso pro bot-relatorios. Anote o AccessKeyId e o SecretAccessKey — o segredo só aparece agora.

O perfil do robô

Crie o perfil relatorios com a chave do robô — sem mexer no seu perfil default. Grave a aws_access_key_id e a aws_secret_access_key nele.

Agora você é o robô

Pergunte à AWS quem é você usando o perfil relatorios. Repare no ARN: é o bot-relatorios, não você. <small>(se errar o nome do perfil, a CLI responde "The config profile (...) could not be found")</small>

You must specify a region

O robô vai listar as instâncias EC2 — e o perfil dele não tem região. Rodar assim dá You must specify a region. Configure a região sa-east-1 no perfil relatorios e liste as instâncias com ele.

Só a região, pro script

Um script precisa saber em que região o perfil relatorios está, sem ler o arquivo. Leia só essa configuração.

A conferência do script noturno

O script noturno do robô começa conferindo o terminal: quais perfis existem e qual chave o perfil relatorios está usando (pra bater com o IAM).

Onde a chave foi parar

Confira o perfil do robô de dois jeitos: o configure list (chaves mascaradas) e o arquivo ~/.aws/credentials (a chave inteira — é por isso que ele NUNCA vai pro git).

Hora de rotacionar

A chave do robô tem 90 dias e a política manda trocar. Crie uma chave nova pro bot-relatorios, grave no perfil relatorios e confirme que o perfil ainda funciona.

Desligue a chave velha

Com o perfil já na chave nova, desative a antiga do bot-relatorios. Quem ainda estiver usando a velha vai quebrar agora — e é melhor descobrir com ela desativada (dá pra reativar) do que apagada.

O perfil esquecido

Um colega tinha o perfil relatorios-legado com a chave antiga do robô. Configure esse perfil com a chave VELHA (a que você desativou), veja o erro — The security token included in the request is invalid — e conserte com a chave nova.

A role de auditoria

A auditoria precisa de acesso de leitura por algumas horas, sem chave nova. Crie a role auditoria-leitura com a política de confiança pronta trust.json.

Vestindo a role

Peça credenciais temporárias da auditoria-leitura com o nome de sessão auditoria-setembro. Repare no AccessKeyId: começa com ASIA (temporária), não AKIA.

Só uma hora e o suficiente

A auditoria só precisa de 15 minutos. Peça de novo, com sessão auditoria-rapida e duração de 900 segundos, e traga só a data de expiração.

O perfil que assume a role sozinho

Copiar credencial temporária à mão cansa. Crie o perfil auditoria com role_arn apontando pra auditoria-leitura e source_profile = relatorios (quem pede a role), dê a região sa-east-1 e confira quem você é com ele.

O login da empresa (SSO)

Na empresa ninguém tem chave: todo mundo entra pelo portal SSO. Configure o perfil empresa-dev com sso_start_url https://climb-labs.awsapps.com/start, sso_region us-east-1, sso_account_id 123456789012, sso_role_name DesenvolvedorPleno e region sa-east-1. Depois, faça o login.

Quem é você pelo SSO?

Pergunte à AWS quem é você com o perfil empresa-dev. Repare no ARN: AWSReservedSSO_DesenvolvedorPleno — é a role que o SSO criou pro seu conjunto de permissões.

Fim do expediente

Vai deixar o notebook no escritório. Encerre as sessões SSO deste terminal.

Segunda de manhã

Segunda-feira: o perfil empresa-dev reclama que a sessão SSO expirou. Faça o login de novo e confira que voltou a funcionar.

Login sem chave nenhuma

Pro seu estudo pessoal, o jeito novo é o aws login: ele usa a sua sessão do Console e dá credenciais temporárias pro perfil. Faça login no perfil console e confira quem você é.

No servidor sem navegador

Você está num servidor por SSH, sem navegador. Faça o login no perfil console-servidor no modo que mostra um link pra abrir em outro aparelho, e depois encerre as sessões SSO que ficaram abertas.

Continue por aqui

Ler explica. Digitar fixa. No CLImb você roda os comandos de verdade num terminal AWS simulado — o estado persiste entre eles, como na nuvem real.

Esta trilha é inteiramente gratuita — não precisa pagar nem dar cartão.

Praticar de graça
Todas as lições · Instalar a AWS CLI · Comandos básicos · Erros comuns · Praticar no terminal · Sobre