Almacenamiento de credenciales en archivo plano

Cuando realizamos una autenticación en AWS utilizando la AWS CLI o SDKs, se genera un conjunto de credenciales que incluyen un Access Key ID y un Secret Access Key. Estas credenciales son fundamentales para interactuar con los servicios de AWS de manera programática y se almacenan localmente en el sistema del usuario para facilitar el acceso futuro sin necesidad de autenticación repetida. Los directorios típicos donde se almacenan estas credenciales son:

  • Para usuarios de Windows: C:\Users\NombreDeUsuario\.aws\credentials

  • Para usuarios de Linux (root): /root/.aws/credentials

  • Para usuarios de Mac y Linux (otros usuarios): /home/NombreDeUsuario/.aws/credentials

La ruta exacta puede variar ligeramente dependiendo del entorno específico y la configuración del sistema.

El archivo normalmente tiene la siguiente composición:

[default]
aws_access_key_id = ASIAJEXAMPLEXEG2JICEA
aws_secret_access_key = 9drTJvcXLB89EXAMPLELB8923FB892xMFI

Si durante una auditoria requieres autenticarte con un Token, se especifica así:

[default]
aws_access_key_id = ASIAJEXAMPLEXEG2JICEA
aws_secret_access_key = 9drTJvcXLB89EXAMPLELB8923FB892xMFI
aws_session_token = AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=

Importancia de la Revisión de Estos Directorios

Después de comprometer un equipo, es crítico revisar estos directorios por varias razones:

  1. Base para Auditorías de Seguridad: Este acceso inicial permite a los consultores de seguridad establecer un punto de partida para auditorías de seguridad más profundas, evaluando no solo las credenciales, sino también las configuraciones, políticas y prácticas de seguridad en el entorno de AWS.

Datos alojados en el archivo de credentials

aws_access_key_id

  • Descripción: El aws_access_key_id es un identificador único asignado a un usuario o entidad de IAM (Identity and Access Management) en AWS. Actúa como un "nombre de usuario" público en el proceso de autenticación para acceder a los servicios de AWS.

  • Uso: Se utiliza junto con el aws_secret_access_key para firmar programáticamente las solicitudes a AWS, asegurando que las peticiones al servicio de AWS sean auténticas.

aws_secret_access_key

  • Descripción: El aws_secret_access_key es una clave secreta asociada al aws_access_key_id. Funciona como una "contraseña" en el proceso de autenticación y nunca debe ser compartida o expuesta públicamente.

  • Uso: Se utiliza para calcular la firma que se incluye en las solicitudes a AWS, proporcionando una capa de seguridad que verifica la identidad del solicitante. Esta clave debe mantenerse confidencial para evitar el acceso no autorizado a los recursos de AWS.

aws_session_token (Opcional)

  • Descripción: El aws_session_token es un token de sesión que se requiere además de las credenciales de acceso cuando se utiliza la Autenticación Temporal. Este token se emite para roles de IAM y usuarios federados, no para usuarios de IAM directos, y tiene una duración limitada.

  • Uso: Se utiliza en escenarios donde las credenciales deben ser temporales, como en el caso de roles asumidos o cuando se accede a AWS mediante federación de identidades. El token valida la temporalidad y el alcance de los permisos otorgados a la sesión, mejorando así la seguridad al limitar el tiempo durante el cual las credenciales son válidas.

Última actualización