Estamos teniendo un problema en el que estamos en una instancia CentOS EC2 que usa un rol a través de un perfil de instancia adjunto. Cuando estamos en la consola después de ingresar mediante SSH, ejecutamos la herramienta de línea de comandos python awscli para obtener nuestra identidad:
$ aws sts get-caller-identityestaban obteniendo
Ocurrió un error (InvalidClientTokenId) al llamar a la operación GetCallerIdentity: El token de seguridad incluido en la solicitud no es válido
otros comandos, como aws ec2 describe-instances funcionan y están permitidos por el perfil de la instancia.
Al leer la documentación de AWS, no se deben requerir permisos para obtener la identidad de la persona que llama y no hay un conjunto de deny explícito en el rol asociado con la instancia.
Verificamos y no hay ningún archivo .aws/credentials ni variables env configuradas, por lo que el acceso debe administrarse completamente a través del servicio de metadatos en la instancia EC2.
¿Falta algo en nuestra configuración o invocación de awscli que podría causar que el permiso falle?
Solo documentando la solución para cualquier persona que se encuentre con este problema.
Todas las llamadas a awscli probablemente deberían incluir un --region <region> .
P.ej
$ aws sts get-caller-identity --region us-east-2 Se nos solicitó la región en nuestra aws ec2 describe-instances , pero en la aws sts get-caller-identity , simplemente falló.
Además, descubrimos que la variable de entorno AWS_REGION no parecía afectar las llamadas: aún necesitábamos incluir el --region <region> .