July 31, 2025

CLI

📘 ¿Qué es la AWS CLI?

La AWS CLI es una herramienta de línea de comandos que permite interactuar con los servicios de AWS usando comandos escritos en un terminal (bash, PowerShell, CMD, etc.).

  • Facilita la automatización, scripting, y gestión remota.

  • Es una alternativa a la Consola web y a los SDKs.

  • Compatible con Windows, Linux, macOS.


📦 Versiones

VersiónDescripción
v1Antigua, sin algunas funciones
v2Recomendada. Incluye mejoras, instalación simplificada, y soporte SSO.

Instalación de v2:


🛠️ Configuración inicial

aws configure

Te pedirá:

  • AWS Access Key ID

  • AWS Secret Access Key

  • Región por defecto (ej: us-east-1)

  • Formato de salida (json, table, text)

Archivos guardados en:

  • ~/.aws/credentials → credenciales

  • ~/.aws/config → configuración general


🧪 Ejemplos básicos por servicio

☁️ EC2

aws ec2 describe-instances
aws ec2 start-instances --instance-ids i-0123456789abcdef0
aws ec2 stop-instances --instance-ids i-0123456789abcdef0
aws ec2 run-instances --image-id ami-0abc123 --count 1 --instance-type t3.micro --key-name MiClave --security-group-ids sg-123 --subnet-id subnet-abc

📦 S3

aws s3 ls
aws s3 cp archivo.txt s3://mi-bucket/
aws s3 sync ./mi_carpeta/ s3://mi-bucket/
aws s3 rm s3://mi-bucket/archivo.txt

🖼️ IAM

aws iam list-users
aws iam create-user --user-name Juan
aws iam attach-user-policy --user-name Juan --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

🧾 CloudFormation

aws cloudformation deploy --template-file plantilla.yaml --stack-name MiStack
aws cloudformation describe-stacks
aws cloudformation delete-stack --stack-name MiStack

📋 Formatos de salida

FormatoDescripción
jsonEstructura legible por máquina
tableTablas legibles para humanos
textSalida plana, ideal para scripts

Ejemplo:

aws ec2 describe-instances --output table

🌍 Perfil múltiple

Para gestionar varias cuentas:

aws configure --profile prod
aws configure --profile dev

Usar con:

aws s3 ls --profile prod

🧠 Filtros y queries (usando --query y JMESPath)

aws ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --output text
  • Permite extraer campos específicos sin procesar JSON entero.

  • Sintaxis JMESPath → potente para scripting y automatización.


🔐 Seguridad

  • Nunca incluyas claves en scripts directamente.

  • Usa roles IAM con EC2 o perfiles temporales con sts assume-role.

  • Usa herramientas como AWS Vault para manejar credenciales.


📦 Comandos útiles

Comando CLIFunción
aws helpAyuda general
aws ec2 helpAyuda por servicio
aws configure listVer configuración actual
aws sts get-caller-identitySaber qué usuario/rol está autenticado
aws logs tailVer logs de CloudWatch en tiempo real (CLI v2)
aws ssm start-sessionAcceder vía SSM a una instancia sin abrir puertos

💸 Costos

  • La CLI es gratuita.

  • Solo se paga por los recursos utilizados al ejecutar comandos (por ejemplo: lanzar una instancia EC2, crear un bucket S3, etc.).


🧠 Buenas prácticas

  • Usa perfiles para separar cuentas/roles.

  • Automatiza tareas repetitivas con scripts Bash/Powershell.

  • Usa --dry-run cuando esté disponible para probar sin ejecutar.

  • Valida plantillas CloudFormation antes de desplegar con:

    aws cloudformation validate-template --template-body file://mi_template.yaml
  • Guarda tus scripts en repositorios versionados.


🎓 Preguntas tipo certificación

  1. ¿Cómo configuras la región por defecto en la CLI?

    • ✅ Con aws configure
  2. ¿Cómo accedes a una instancia EC2 sin clave SSH ni puerto 22?

    • ✅ Con aws ssm start-session
  3. ¿Qué comando permite desplegar un stack de CloudFormation?

    • aws cloudformation deploy --template-file ...
  4. ¿Qué herramienta permite trabajar con múltiples perfiles de AWS sin exponer credenciales?

    • AWS Vault

🧪 Mini cheat sheet

aws configure
aws s3 ls
aws ec2 describe-instances
aws ec2 run-instances --image-id ami-xxx --instance-type t2.micro ...
aws cloudformation deploy --template-file vpc.yaml --stack-name VPCStack
aws sts get-caller-identity