Os 10 Comandos Essenciais do AWS CLI para Gerenciamento Diário de Recursos
Mantenha esta folha de dicas da AWS CLI à mão para verificações diárias de S3, EC2 e IAM, transferências, ações em instâncias e revisões de permissões.
Os 10 Principais Comandos Essenciais da AWS CLI para Gerenciamento Diário de Recursos
A AWS CLI é frequentemente a maneira mais rápida de responder a perguntas operacionais diárias: quais instâncias EC2 estão em execução, o que mudou em um prefixo S3 ou quais políticas estão anexadas a um usuário. O console é útil, mas a CLI oferece comandos repetíveis que você pode colar em um runbook ou script.
Esta folha de dicas da AWS CLI foca em comandos práticos de S3, EC2 e IAM que você provavelmente usará durante verificações de rotina e solução de problemas.
Pré-requisitos
Antes de começar, certifique-se de ter a AWS CLI instalada e configurada em seu sistema. Caso contrário, siga a documentação oficial da AWS para instalá-la e configurar suas credenciais (ID da chave de acesso, chave de acesso secreta e região padrão).
# Verificar a versão da AWS CLI
aws --version
# Configurar a AWS CLI se ainda não o fez
aws configure
Comandos Essenciais da AWS CLI para Amazon S3
Use estes comandos para inspecionar buckets, mover objetos e visualizar alterações antes de uma transferência.
1. aws s3 ls - Listar Buckets e Objetos S3
Este comando permite listar seus buckets S3 ou os objetos dentro de um bucket específico. Geralmente é o primeiro passo para entender seu cenário de armazenamento.
Propósito: Visualizar buckets S3 ou o conteúdo de um bucket.
Exemplo:
# Listar todos os buckets S3 em sua conta
aws s3 ls
# Listar objetos em um bucket específico
aws s3 ls s3://seu-nome-do-bucket/
# Listar objetos recursivamente com tamanhos e datas legíveis
aws s3 ls s3://seu-nome-do-bucket/ --recursive --human-readable --summarize
Dicas:
- Use
--recursivepara listar todos os objetos sob um prefixo. O S3 tem prefixos, não pastas reais, embora a CLI os apresente de forma semelhante a pastas.--summarizefornece uma contagem total e tamanho. - Você também pode especificar um caminho dentro de um bucket:
aws s3 ls s3://seu-nome-do-bucket/prefixo/.
2. aws s3 cp - Copiar Arquivos para e do S3
O comando cp é fundamental para transferir arquivos entre seu sistema de arquivos local e o S3, ou até mesmo entre buckets S3.
Propósito: Copiar arquivos locais para o S3, objetos S3 para o local ou objetos S3 entre buckets.
Exemplo:
# Copiar um arquivo local para um bucket S3
aws s3 cp arquivo-local.txt s3://seu-nome-do-bucket/pasta/arquivo-remoto.txt
# Copiar um objeto do S3 para sua máquina local
aws s3 cp s3://seu-nome-do-bucket/pasta/arquivo-remoto.txt copia-local.txt
# Copiar um objeto de um bucket S3 para outro
aws s3 cp s3://bucket-origem/arquivo.txt s3://bucket-destino/novo-arquivo.txt
# Copiar um diretório local para o S3 recursivamente
aws s3 cp --recursive pasta-local/ s3://seu-nome-do-bucket/pasta-remota/
Dicas:
--recursiveé crucial para copiar diretórios inteiros.- Use
--excludee--includepara filtrar arquivos durante cópias recursivas.
3. aws s3 sync - Sincronizar Diretórios Locais com o S3
sync é um comando poderoso que sincroniza o conteúdo de um diretório com um prefixo S3, ou vice-versa. Ele copia apenas arquivos novos ou modificados, tornando-o altamente eficiente para backups e implantações.
Propósito: Sincronizar eficientemente um diretório local com um bucket/prefixo S3.
Exemplo:
# Sincronizar um diretório local com um bucket S3
aws s3 sync diretorio-local/ s3://seu-nome-do-bucket/caminho-remoto/
# Sincronizar um bucket S3 com um diretório local
aws s3 sync s3://seu-nome-do-bucket/caminho-remoto/ diretorio-local/
# Simulação para ver quais alterações seriam feitas sem realmente executá-las
aws s3 sync diretorio-local/ s3://seu-nome-do-bucket/caminho-remoto/ --dryrun
Melhor Prática: Sempre use --dryrun primeiro para visualizar as alterações antes de executar uma operação sync, especialmente para dados críticos.
4. aws s3 rm - Remover Objetos e Buckets S3
Este comando é usado para excluir objetos de um bucket S3 ou para remover um bucket vazio.
Propósito: Excluir objetos ou buckets vazios do S3.
Exemplo:
# Excluir um único objeto de um bucket
aws s3 rm s3://seu-nome-do-bucket/caminho/para/objeto.txt
# Excluir todos os objetos em uma pasta (prefixo) recursivamente
aws s3 rm s3://seu-nome-do-bucket/pasta/ --recursive
# Excluir um bucket vazio
aws s3 rb s3://seu-nome-do-bucket/
# Remover forçadamente um bucket e todo o seu conteúdo (USE COM EXTREMA CAUTELA!)
aws s3 rb s3://seu-nome-do-bucket/ --force
Aviso: aws s3 rb --force é destrutivo. Ele remove objetos antes de excluir o bucket, mas buckets versionados podem ainda exigir limpeza de versões com comandos de API S3 de nível inferior antes da exclusão.
Comandos Essenciais da AWS CLI para Amazon EC2 (Elastic Compute Cloud)
O EC2 fornece capacidade de computação escalável na nuvem AWS. Estes comandos ajudam a gerenciar seus servidores virtuais.
5. aws ec2 describe-instances - Obter Detalhes da Instância EC2
Este é seu comando principal para coletar informações sobre suas instâncias EC2, incluindo estado, IPs público/privado, tags e muito mais.
Propósito: Recuperar informações detalhadas sobre uma ou mais instâncias EC2.
Exemplo:
# Descrever todas as instâncias EC2 na região atual
aws ec2 describe-instances
# Descrever instâncias com uma tag específica (ex.: Environment=Production)
aws ec2 describe-instances \
--filters "Name=tag:Environment,Values=Production"
# Descrever instâncias pelo ID da instância
aws ec2 describe-instances --instance-ids i-0abcdef1234567890
# Descrever instâncias e filtrar informações específicas usando JMESPath (ex.: PublicIpAddress)
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].{InstanceId:InstanceId,PublicIp:PublicIpAddress,State:State.Name}" \
--output table
Dicas:
--filtersé poderoso para restringir resultados com base no estado da instância, tags, tipos de instância e muito mais.--querypermite extrair campos de dados específicos e reformatar a saída (ex.: usando expressões JMESPath).
6. aws ec2 start-instances - Iniciar Instâncias EC2 Paradas
Use este comando para iniciar uma ou mais instâncias EC2 paradas. As instâncias geralmente mantêm seus endereços IPv4 privados, mas os endereços IPv4 públicos podem mudar a menos que você use um endereço IP Elástico.
Propósito: Iniciar o processo de inicialização para instâncias EC2 paradas.
Exemplo:
# Iniciar uma única instância EC2
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Iniciar múltiplas instâncias EC2
aws ec2 start-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
7. aws ec2 stop-instances - Parar Instâncias EC2 em Execução
Este comando para instâncias EC2 em execução. Para a maioria das instâncias com suporte EBS, a cobrança por hora de instância é interrompida enquanto a instância está parada, mas volumes EBS anexados, endereços IP Elásticos, snapshots e alguns recursos relacionados podem continuar gerando custos.
Propósito: Parar instâncias EC2 em execução.
Exemplo:
# Parar uma única instância EC2
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
# Parar múltiplas instâncias EC2
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
# Forçar a parada de uma instância (use com cautela em sistemas de produção)
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 --force
Aviso: Forçar a parada de uma instância pode levar à perda de dados ou corrupção do sistema de arquivos se os aplicativos não forem encerrados corretamente.
8. aws ec2 terminate-instances - Encerrar Instâncias EC2
Encerrar uma instância exclui permanentemente a instância. Os volumes EBS anexados são excluídos apenas se a configuração DeleteOnTermination estiver habilitada.
Propósito: Excluir permanentemente instâncias EC2.
Exemplo:
# Encerrar uma única instância EC2
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890
# Encerrar múltiplas instâncias EC2
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
Aviso: O encerramento é uma ação permanente e irreversível. Certifique-se de ter backups ou snapshots de dados críticos antes de encerrar instâncias.
Comandos Essenciais da AWS CLI para IAM (Identity and Access Management)
O IAM permite controlar com segurança o acesso aos serviços e recursos da AWS. Estes comandos ajudam a gerenciar usuários e suas permissões.
9. aws iam list-users - Listar Usuários IAM
Este comando fornece uma lista de todos os usuários IAM em sua conta AWS, juntamente com seus ARNs, datas de criação e IDs de usuário.
Propósito: Visualizar todos os usuários IAM configurados em sua conta AWS.
Exemplo:
# Listar todos os usuários IAM
aws iam list-users
# Listar usuários e extrair campos específicos usando JMESPath
aws iam list-users --query "Users[*].{UserName:UserName,CreateDate:CreateDate,Arn:Arn}" --output table
Melhor Prática: Revise regularmente sua lista de usuários IAM para garantir que apenas usuários necessários existam e que contas antigas e não utilizadas sejam removidas.
10. aws iam list-attached-user-policies - Listar Políticas Anexadas a um Usuário IAM
Entender quais permissões um usuário IAM possui é crítico para segurança e solução de problemas de acesso. Este comando lista as políticas gerenciadas diretamente anexadas a um usuário específico.
Propósito: Exibir políticas gerenciadas anexadas a um usuário IAM.
Exemplo:
# Listar todas as políticas gerenciadas anexadas a um usuário IAM específico
aws iam list-attached-user-policies --user-name SeuNomeDeUsuarioIAM
# Listar políticas inline anexadas a um usuário IAM específico
aws iam list-user-policies --user-name SeuNomeDeUsuarioIAM
Dicas:
- Lembre-se de que os usuários IAM podem receber permissões de políticas gerenciadas anexadas, políticas inline e associação a grupos. As funções são identidades IAM separadas; os usuários não herdam permissões de função a menos que tenham permissão para assumir uma função.
- Para obter os detalhes de uma política específica, use
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccesse depoisaws iam get-policy-version.
Conclusão
Comece com comandos somente leitura, como aws s3 ls, aws ec2 describe-instances e aws iam list-users. Adicione ações de escrita como sync, stop-instances e terminate-instances somente depois de confirmar a conta, região, perfil e IDs dos recursos de destino.