virginia iam east aws amazon-ec2 ec2-api-tools

amazon ec2 - iam - Error de la API EC2 que valida la credencial de acceso



iam roles gcp (4)

AWS CLI estaba funcionando bien para mí, pero de repente comenzó a fallar con el siguiente error

A client error (AuthFailure) occurred when calling the DescribeTags operation: AWS was not able to validate the provided access credentials

Intenté con un nuevo conjunto de credenciales, sin embargo eso no ayudó.

Funcionó solo después de que se realizara el inicio de detención en la instancia EC2 (el reinicio también podría haber funcionado). Por lo tanto, parece ser un problema con la instancia EC2 particular desde donde se ejecutó el aws cli.

Instalé la aplicación ec2 siguiendo la guía de Amazon. Configuré el id de acceso y el secreto como variable de entorno.

Aquí está mi perfil:

exportar AWS_ACCESS_KEY = XXXXX

exportar AWS_SECRET_KEY = XXXXXX

exportar JAVA_HOME = / usr / lib / jvm / java-7-openjdk-amd64 / jre

exportar EC2_HOME = / usr / local / ec2 / ec2-api-tools-1.7.1.0

PATH de exportación = $ PATH: $ EC2_HOME / bin

Everythings parece configurado como se lo pidieron, pero no puedo conectarme a aws.

Aquí la salida del comando ec2-describe-regions en modo detallado:

Client.AuthFailure: AWS was not able to validate the provided access credentials ubuntu@ip:~$ ec2dre -v Setting User-Agent to [ec2-api-tools 1.7.1.0] 2014-07-14 19:10:34,898 [main] DEBUG org.apache.http.wire - >> "POST / HTTP/1.1[/r][/n]" 2014-07-14 19:10:34,912 [main] DEBUG org.apache.http.wire - >> "Host: ec2.amazonaws.com[/r][/n]" 2014-07-14 19:10:34,912 [main] DEBUG org.apache.http.wire - >> "X-Amz-Date: 20140714T191033Z[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "Authorization: AWS4-HMAC-SHA256 Credential=AKIAIT64V5MH2HHF5QZQ/20140714/us-east-1/ec2/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=06920c7d37a24d8244feb630d87310238886294d3ae2ab40f68a362a799d9a62[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "User-Agent: ec2-api-tools 1.7.1.0, aws-sdk-java/unknown-version Linux/3.2.0-36-virtual OpenJDK_64-Bit_Server_VM/24.51-b03[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "Content-Type: application/x-www-form-urlencoded; charset=utf-8[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "Content-Length: 41[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "Connection: Keep-Alive[/r][/n]" 2014-07-14 19:10:34,913 [main] DEBUG org.apache.http.wire - >> "[/r][/n]" 2014-07-14 19:10:34,914 [main] DEBUG org.apache.http.wire - >> "Action=DescribeRegions&Version=2014-06-15" 2014-07-14 19:10:34,984 [main] DEBUG org.apache.http.wire - << "HTTP/1.1 401 Unauthorized[/r][/n]" 2014-07-14 19:10:35,002 [main] DEBUG org.apache.http.wire - << "Transfer-Encoding: chunked[/r][/n]" 2014-07-14 19:10:35,003 [main] DEBUG org.apache.http.wire - << "Date: Mon, 14 Jul 2014 19:18:34 GMT[/r][/n]" 2014-07-14 19:10:35,003 [main] DEBUG org.apache.http.wire - << "Server: AmazonEC2[/r][/n]" 2014-07-14 19:10:35,010 [main] DEBUG org.apache.http.wire - << "[/r][/n]" 2014-07-14 19:10:35,225 [main] DEBUG org.apache.http.wire - << "fe[/r][/n]" 2014-07-14 19:10:35,225 [main] DEBUG org.apache.http.wire - << "<?xml version="1.0" encoding="UTF-8"?>[/n]" 2014-07-14 19:10:35,225 [main] DEBUG org.apache.http.wire - << "<Response><Errors><Error><Code>AuthFailure</Code><Message>AWS was not able to validate the provided access credentials</Message></Error></Errors><RequestID>cd2b128b-3d70-425b-a8a7-4856fd9a6b99</RequestID></Response>" 2014-07-14 19:10:35,278 [main] DEBUG org.apache.http.wire - << "[/r][/n]" 2014-07-14 19:10:35,279 [main] DEBUG org.apache.http.wire - << "0[/r][/n]" 2014-07-14 19:10:35,279 [main] DEBUG org.apache.http.wire - << "[/r][/n]" Client.AuthFailure: AWS was not able to validate the provided access credentials Request ID: cd2b128b-3d70-425b-a8a7-4856fd9a6b99


Ejecute aws s3 ls para confirmar si el error está relacionado con la sincronización de tiempo. Debería obtener el error como:

Se ha producido un error (RequestTimeTooSkewed) al llamar a la operación ListBuckets: la diferencia entre el tiempo de solicitud y la hora actual es demasiado grande.

Si es así, intente sincronizar su fecha y hora como se sugiere.

Ejemplo de comandos de shell en Linux para hacer eso:

# Install the ntpdate client for setting system time from NTP servers. sudo apt-get --yes install ntpdate sudo ntpdate 0.amazon.pool.ntp.org

Luego, vuelva a probar su comando aws nuevamente.

Si la zona horaria aún no es correcta, ejecute: sudo dpkg-reconfigure tzdata para configurarlo, o por:

timedatectl list-timezones timedatectl set-timezone ''Europe/London''

Ver también: Configure el tiempo local. dpkg-reconfigure tzdata .


Me encontré con este problema cuando el reloj de mi sistema se configuró falsamente.

En mi caso, el reloj estaba corriendo por dos horas.

Igualmente importante es poner los comandos en su archivo .bashrc o similar (.bash_aliases):

export AWS_ACCESS_KEY="XXXXXXXXXXXXXXXXX" export AWS_SECRET_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Cuando se ejecuta source ~/.bashrc

La razón de la importancia de esto es que cuando se ejecuta un comando ec2 se crean nuevas instancias de shell que de otra manera no obtienen las variables de entorno.


Verifique que el reloj del servidor esté sincronizado .

Si el reloj está retrasado, puede causar este error:

AWS was not able to validate the provided access credentials