EC2 Error de API de validación de credenciales de acceso

He instalado la api de ec2 siguiente al de amazon guía. Me creada la identificación de acceso y secreto como una variable de entorno.

Aquí está mi perfil:

exportación AWS_ACCESS_KEY=XXXXX

exportación AWS_SECRET_KEY=XXXXXX

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

exportación EC2_HOME=/usr/local/ec2/ec2-api-herramientas-1.7.1.0

export PATH=$PATH:$EC2_HOME/bin

Todo se ve configurado como le hacen, pero no puedo conectar a aws.

Aquí la salida del comando ec2-describir-regiones en modo verbose:

Client.AuthFailure: AWS was not able to validate the provided access credentials
[email protected]:~$ 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
  • Con > 500 rep usted debe saber mejor: nos muestran su código, y el env de que el usuario que ejecuta el código (sin valores)
  • No hay ningún código que participan acabo de ejecutar ec2dre para comprobar el medio ambiente. He actualizado en el mensaje a mi perfil env variables. ¿A qué te refieres por «>500»
  • nm 500, en el que el entorno es? root ? que el usuario se conecta a AWS ?
  • Me estoy conectando con un usuario normal con la identidad y el gid 1000. También he intentado con root y tengo el mismo error.
  • He utilizado la misma credencial de un mac y funciona, pero en ubuntu no
  • Intente ejecutar el comando con los interruptores de --aws-access-key y --aws-secret-key (y especificar las teclas de forma explícita)
  • hice y no funciona, probado el mismo comando en un Mac con la misma credencial y está funcionando. No sé cómo depurar de una manera más profunda.
  • ¿Ir a través de la instrucciones y configurado JAVA_HOME correctamente ?
  • Sí, yo no. Java está instalado correctamente de lo contrario, yo no tenía una especie de error de autenticación.

InformationsquelleAutor Kerby82 | 2014-07-14

6 Kommentare

  1. 88

    Compruebe que el servidor reloj se sincroniza.

    Si el reloj se retrasa, puede causar este error:

    AWS was not able to validate the provided access credentials
    
    • ¿Cómo se llegó a esta solución ? de cualquier manera ! funcionó 🙂 Thx
    • Amazon documentos de este comportamiento: «El EC2 herramientas de línea de comandos uso de sus claves de acceso así como la fecha y hora de firmar sus peticiones. Asegúrese de que el equipo de la fecha y la hora están configuradas correctamente. Si no lo están, la fecha de la firma puede no coincidir con la fecha de la solicitud, y AWS rechaza la solicitud.» docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/…
    • aws s3 ls: se produjo Un error (RequestTimeTooSkewed) al llamar a la ListBuckets operación: La diferencia entre el tiempo de solicitud y el tiempo actual es demasiado grande.
  2. 19

    Me encontré con este problema cuando mi reloj del sistema se establece en falso.

    En mi caso el reloj seguía corriendo delante por dos horas.

    Igualmente importante es poner los comandos en el .bashrc o similares de archivo (.bash_aliases):

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

    Cuando no ejecutar source ~/.bashrc

    La razón de la importancia de esto es que cuando se ejecuta una ec2 de comandos de shell nuevo instancias se crean que no las variables de entorno de otra manera.

    • mismo para mí, el reloj fue 10min a cabo, instalado NTP solucionarlo
    • Tenía este problema, mientras que en ejecución de Niebla en el interior de un contenedor Docker a través de Boot2Docker. Esta pregunta me ayudó a restablecer el tiempo en mi Boot2Docker VM.
    • El comando exportar en el .zshrc como o .bashrc es muy importante. A menos que se actualice, la vieja llave que se exporta.
  3. 7

    Ejecutar aws s3 ls para confirmar si el error está relacionado con el tiempo de sincronización. Usted debe obtener el error como:

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

    Si es así, intentar sincronizar la fecha y hora como se sugiere.

    Ejemplo de comandos de la shell en Linux para hacer que:

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

    A continuación, vuelva a intentar su aws comando de nuevo.


    Si la zona horaria es que todavía no es el correcto, ejecute: sudo dpkg-reconfigure tzdata para configurarlo, o por:

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

    Ver también: Configurar localtime. dpkg-reconfigure tzdata.

  4. 4

    De la CLI de AWS estaba trabajando bien para mí, pero de repente empezó a fallar con el error siguiente

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

    Intentado con un nuevo conjunto de credenciales, sin embargo, que no son de ayuda.

    Se trabajó sólo después de stop-start se realizó en la instancia de EC2 (reiniciar el equipo puede también han trabajado). Por lo tanto, parece ser un problema con la instancia de EC2 de donde la cli de aws fue ejecutado.

  5. 3

    Yo tenía un problema similar. El reloj en mi servidor local no estaba. He corregido con el siguiente comando.

    sudo fecha -s «$(wget -qSO- –max-redirect=0 google.com 2>&1 | grep Fecha: | cut-d’ ‘-f5-8)Z»

    Entonces, aws trabajado.

  6. 1

    Esto también puede ser debido a un problema dependiendo de la región en la que usted está tratando de alcanzar. Tengo un script tratando de asumir roles en todas las regiones y seguí recibiendo esta en Hong Kong (ap-east-1). Usted primero tiene que habilitar esta región con el fin de acceder a ella. Obtendrá este error por las siguientes regiones, si no los tienes habilitado:

    ap-east-1
    cn-north-1
    cn-northwest-1
    us-gov-east-1
    us-gov-west-1
    

    Extrañamente, ap-northeast-3 también da un error, pero el error es OptInRequired.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea