# 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:

* <mark style="color:orange;">**Para usuarios de Windows**</mark><mark style="color:orange;">:</mark> `C:\Users\NombreDeUsuario\.aws\credentials`
* <mark style="color:orange;">**Para usuarios de Linux (root)**</mark><mark style="color:orange;">:</mark> `/root/.aws/credentials`
* <mark style="color:orange;">**Para usuarios de Mac y Linux (otros usuarios)**</mark><mark style="color:orange;">:</mark> `/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=
```

## <mark style="color:orange;">Importancia de la Revisión de Estos Directorios</mark>

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

1. <mark style="color:orange;">**Base para Auditorías de Seguridad**</mark><mark style="color:orange;">:</mark> 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.

## <mark style="color:orange;">Datos alojados en el archivo de credentials</mark>

### <mark style="color:orange;">aws\_access\_key\_id</mark>

* <mark style="color:orange;">**Descripción**</mark><mark style="color:orange;">:</mark> 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.
* <mark style="color:orange;">**Uso**</mark><mark style="color:orange;">:</mark> 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.

### <mark style="color:orange;">aws\_secret\_access\_key</mark>

* <mark style="color:orange;">**Descripción**</mark><mark style="color:orange;">:</mark> 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.
* <mark style="color:orange;">**Uso**</mark><mark style="color:orange;">:</mark> 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.

### <mark style="color:orange;">aws\_session\_token (Opcional)</mark>

* <mark style="color:orange;">**Descripción**</mark><mark style="color:orange;">:</mark> 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.
* <mark style="color:orange;">**Uso**</mark><mark style="color:orange;">:</mark> 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.
