Conexiones a Bucket s3

📌¿Cómo maneja la autenticación aws cli?

🔍 Explicación técnica

Cuando ejecutamos aws s3 ls s3://subdomain.domain sin configurar credenciales, AWS CLI sigue su flujo estándar de autenticación: 1️⃣ Primero, busca credenciales en archivos de configuración (~/.aws/credentials y ~/.aws/config) 2️⃣ Si no las encuentra, busca en variables de entorno (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 3️⃣ Si aún no encuentra credenciales, devuelve el error:

"Unable to locate credentials. You can configure credentials by running aws configure".

Aunque el bucket fuera público, AWS CLI requiere que haya credenciales configuradas para poder operar correctamente.

📌 Cuando configuramos credenciales arbitrarias (temp, temp, temp), AWS CLI deja de buscar y asume que tenía credenciales válidas, permitiéndonos acceder.


⚠️ ¿Por qué AWS CLI no permite el acceso sin credenciales, incluso a recursos públicos?

Esto se debe a que AWS CLI siempre intenta autenticar las solicitudes, incluso cuando el recurso es público.

  • Aunque en teoría podrías acceder a S3 sin credenciales, AWS CLI no tiene un "modo anónimo" por defecto.

  • AWS CLI intenta firmar las solicitudes, aunque el servidor no lo requiera.

Solución alternativa: Usar AWS CLI en "modo anónimo"

Si quieres forzar a AWS CLI a no usar credenciales, podrías intentar con:

AWS_ACCESS_KEY_ID=none AWS_SECRET_ACCESS_KEY=none aws --endpoint=http://s3.subdomain.domain s3 ls s3://subdomain.domain

Esto simula credenciales vacías, pero engaña a AWS CLI para que siga funcionando.

Ver máquina Three (HTB Tier 1)

Last updated