Cómo probar las credenciales para las herramientas de línea de comandos de AWS
¿Existe algún comando/subcomando que se pueda pasar a la aws
utilidad que pueda 1) verificar que las credenciales en el ~/.aws/credentials
archivo sean válidas y 2) dar alguna indicación a qué usuario pertenecen las credenciales? Estoy buscando algo genérico que no haga suposiciones acerca de que el usuario tiene permisos para IAM o cualquier servicio específico.
El caso de uso para esto es una verificación de idoneidad en el momento de la implementación para asegurarse de que las credenciales sean buenas. Lo ideal sería que hubiera alguna forma de comprobar el valor devuelto y cancelar la implementación si hay credenciales no válidas.
Utilice GetCallerIdentity :
aws sts get-caller-identity
A diferencia de otras llamadas API/CLI, siempre funcionará, independientemente de sus permisos de IAM.
Obtendrá un resultado en el siguiente formato:
{
"Account": "123456789012",
"UserId": "AR#####:#####",
"Arn": "arn:aws:sts::123456789012:assumed-role/role-name/role-session-name"
}
El formato de ARN exacto dependerá del tipo de credenciales, pero a menudo incluye el nombre del usuario (humano).
Utiliza los códigos de error estándar de AWS CLI que dan 0 en caso de éxito y 255 si no tiene credenciales.
Hay una manera sencilla: aws iam get-user
informará los detalles sobre quién es usted (el usuario de IAM actual), siempre que el usuario tenga iam
privilegios.
Hay un par de llamadas CLI que admiten --dry-run
indicadores como aws ec2 run-instances
los que le indican si tiene la configuración/cred necesaria para realizar la operación.
También está --auth-dry-run
el que comprueba si tiene los permisos necesarios para el comando, sin ejecutarlo realmente. Si tiene los permisos necesarios, el comando devuelve DryRunOperation; de lo contrario, devuelve Operación no autorizada. [De la documentación de AWS: opciones comunes ]
Podrá enumerar las claves de acceso de IAM desde Management Console, que puede verificar para ver a quién se le ha asignado qué clave.
La mejor manera de comprender qué usuario/rol tiene qué privilegios es utilizar IAM Policy Simulator .