web-dev-qa-db-fra.com

Erreur API EC2 lors de la validation des informations d'identification d'accès

J'ai installé l'ap2 ec2 en suivant le guide Amazon. J'ai configuré l'identifiant d'accès et le secret en tant que variable d'environnement.

Ici c'est mon profil:

exportation AWS_ACCESS_KEY = XXXXX 

exportation AWS_SECRET_KEY = XXXXXX 

export Java_HOME =/usr/lib/jvm/Java-7-openjdk-AMD64/jre 

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

export PATH = $ PATH: $ EC2_HOME/bin

Tout semble configuré comme demandé, mais je ne peux pas me connecter à aws.

Voici la sortie de la commande ec2-describe-regions en mode prolixe:

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
34
Kerby82

Vérifiez que le serveur l’horloge est synchronisé .

Si l'horloge est retardée, cette erreur peut survenir:

AWS was not able to validate the provided access credentials
80
raittes

Je me suis heurté à ce problème lorsque mon horloge système a été réglée de manière erronée. 

Dans mon cas, l'horloge tournait en avance de deux heures.

Il est également important de placer les commandes dans votre fichier .bashrc ou similaire (.bash_aliases): 

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

Quand il y en a eu source ~/.bashrc

L’importance de cette situation tient au fait que lorsqu’une commande ec2 est exécutée, de nouvelles instances de shell sont créées et ne reçoivent pas les variables d’environnement.

18
javabeangrinder

Exécutez aws s3 ls pour vérifier si l'erreur est liée à la synchronisation temporelle. Vous devriez obtenir l'erreur comme:

Une erreur s'est produite (RequestTimeTooSkewed) lors de l'appel de l'opération ListBuckets: L'écart entre l'heure de la demande et l'heure actuelle est trop important.

Si tel est le cas, essayez de synchroniser votre date et heure comme suggéré.

Exemple de commandes de shell sous Linux pour le faire:

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

Réessayez ensuite votre commande aws.


Si le fuseau horaire n'est toujours pas correct, exécutez: Sudo dpkg-reconfigure tzdata pour le configurer, ou par:

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

Voir aussi: Configure localtime. dpkg-reconfigure tzdata .

7
kenorb

AWS CLI fonctionnait bien pour moi, mais tout à coup, l'erreur suivante a commencé à échouer 

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

Essayé avec un nouvel ensemble de références, mais cela n'a pas aidé.

Cela n'a fonctionné qu'une fois que stop-start a été exécuté sur l'instance EC2 (le redémarrage a peut-être également fonctionné). Par conséquent, il semble y avoir un problème avec l'instance EC2 particulière à partir de laquelle la aws cli a été exécutée.

4
Sachin

J'ai eu un problème similaire. L'horloge de mon serveur local était éteinte. Je l'ai corrigé avec la commande suivante.

Sudo date -s "$ (wget -qSO- --max-redirect = 0 google.com 2> & 1 | grep Date: | cut -d '' -f5-8) Z"

Ensuite, les travaux ont fonctionné.

0
Prasanth Pennepalli