~/cuaderno / 2026 / entrada-1068.md

AWS CLI v2 en Ubuntu: instalar, configurar y empezar con S3

Publicado 09 agosto 2026 4 min de lectura
Diagrama de un flujo seguro con perfil SSO, comprobación de identidad, servicios AWS y salida legible.

La consola web de AWS sirve para explorar, pero en cuanto repito una operación prefiero convertirla en un comando que pueda revisar y documentar. AWS CLI v2 permite consultar recursos, mover archivos a S3 y automatizar tareas desde Ubuntu sin construir una aplicación completa.

Voy a instalar la versión oficial, configurar un perfil y probar operaciones de lectura antes de tocar nada. Los nombres de cuenta, región, bucket y perfil son ejemplos: hay que sustituirlos por los propios.

Instalar AWS CLI v2 en Ubuntu x86-64

sudo apt update
sudo apt install curl unzip

curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" \
  -o awscliv2.zip
unzip -q awscliv2.zip
sudo ./aws/install

aws --version
command -v aws

En una máquina ARM64 cambio la URL por awscli-exe-linux-aarch64.zip. No confundo el paquete antiguo que pueda ofrecer una distribución con AWS CLI v2: la salida de aws --version debe empezar por aws-cli/2.

Cuando termine puedo retirar el ZIP y el directorio extraído:

rm -f awscliv2.zip
rm -rf ./aws

Estos nombres son concretos y están en el directorio actual. Antes de cualquier borrado compruebo dónde estoy con pwd y ls.

Autenticarse sin pegar claves eternas por todas partes

Para una persona, AWS recomienda credenciales temporales y permite configurar IAM Identity Center:

aws configure sso --profile laboratorio
aws sso login --profile laboratorio
aws sts get-caller-identity --profile laboratorio

La última orden responde qué identidad está usando realmente el perfil. La ejecuto antes de una tarea delicada; evita descubrir demasiado tarde que estaba operando en otra cuenta.

En una instancia EC2 prefiero un rol asociado a la instancia con los permisos mínimos necesarios. Guardar una clave de acceso permanente en ~/.aws/credentials funciona, pero crea un secreto que hay que custodiar, rotar y retirar. Nunca incluyo credenciales en un script o repositorio.

Elegir región y formato

aws configure set region eu-west-1 --profile laboratorio
aws configure set output json --profile laboratorio
aws configure list --profile laboratorio

La región no es decorativa. Muchos recursos existen en una región concreta y una lista vacía puede significar simplemente que estamos mirando en otra.

Primeras operaciones con S3

aws s3 ls --profile laboratorio
aws s3 ls s3://mi-bucket/archivo/ --profile laboratorio

aws s3 cp informe.tar.zst s3://mi-bucket/copias/ \
  --profile laboratorio

aws s3 cp s3://mi-bucket/copias/informe.tar.zst ./restaurado.tar.zst \
  --profile laboratorio

Después de subir verifico tamaño, fecha y, para copias importantes, el contenido restaurado. Que el comando termine con éxito no prueba que hayamos subido el archivo correcto.

Sincronizar con simulación previa

aws s3 sync /srv/archivo/ s3://mi-bucket/archivo/ \
  --dryrun --profile laboratorio

aws s3 sync /srv/archivo/ s3://mi-bucket/archivo/ \
  --profile laboratorio

sync copia archivos nuevos o modificados. Solo borra en destino si añadimos --delete; esa opción merece una simulación, una revisión y una estrategia de versiones en el bucket. Sin versionado, un error automatizado puede convertirse en una pérdida automatizada.

Obtener resultados que se puedan leer

aws ec2 describe-instances \
  --profile laboratorio \
  --query 'Reservations[].Instances[].{Id:InstanceId,Estado:State.Name,Tipo:InstanceType}' \
  --output table

--query filtra la respuesta en el cliente y --output table la vuelve cómoda para una inspección humana. Para automatización mantengo JSON y trato los errores de salida; no analizo una tabla dibujada con espacios.

Actualizar la instalación

Descargo de nuevo el instalador de la arquitectura correcta y ejecuto:

sudo ./aws/install --bin-dir /usr/local/bin \
  --install-dir /usr/local/aws-cli --update
aws --version

Mi secuencia mínima queda así: instalar desde el origen oficial, usar un perfil con credenciales temporales, confirmar identidad y región, probar primero lecturas y utilizar --dryrun cuando una operación vaya a afectar muchos objetos.

Referencias: documentación oficial para instalar AWS CLI v2, configurar IAM Identity Center y usar los comandos de S3.

Compartir: X / Twitter LinkedIn Reddit Email
Siguiente comando: volver al archivo o pulsa Ctrl + K

0 comentarios

TIP RÁPIDO

Sé concreto, añade contexto (versión, distro, stack) y si puedes pega logs en bloque de código. Menos drama, más señales.

nginx plesk mariadb logs

Deja una respuesta

NormaRespeto, claridad, y cero spam. El email no se publica.

Consejo: usa bloques de código para logs. Ej: ```log ... ```

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.