amazon-ec2 - 接続できない - aws ssh 接続できなくなった




EC2 APIアクセスクレデンシャルの検証中にエラーが発生しました (3)

AWS CLIはうまくいきましたが、突然次のエラーで失敗し始めました

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

しかし、資格の新しいセットを試してみましたが、それは助けにはなりませんでした。

これは、EC2インスタンスでストップスタートが実行された後でのみ機能しました(リブートが機能している可能性があります)。 したがって、aws cliが実行された特定のEC2インスタンスの問題であるように見えます。

アマゾンガイドの後にec2 apiをインストールしました。 私は環境変数としてアクセスIDと秘密を設定しました。

ここが私のプロフィールです:

エクスポートAWS_ACCESS_KEY = XXXXX

エクスポート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

尋ねられるごとにすべての設定が表示されますが、awsに接続できません。

verboseモードでec2-describe-regionsコマンドの出力を次に示します。

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

aws s3 lsを実行して、エラーが時刻同期に関連しているかどうかを確認します。 次のようなエラーが発生するはずです。

ListBuckets操作を呼び出すときにエラー(RequestTimeTooSkewed)が発生しました。要求時刻と現在時刻の差が大きすぎます。

そのような場合は、提案されているように日時を同期させてください。

Linux上でシェルコマンドを実行する例

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

その後、 awsコマンドをもう一度やり直してください。

それでもタイムゾーンが正しくない場合は、 sudo dpkg-reconfigure tzdataを実行して設定します。

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

参照: Configure localtimeを参照してください dpkg-reconfigure tzdata


システムクロックが誤って設定されたときにこの問題に遭遇しました。

私の場合、時計は2時間先に走っていました。

同じように重要なのは、コマンドを.bashrcまたは同様のファイル(.bash_aliases)に入れることです:

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

source ~/.bashrc実行すると

これが重要である理由は、ec2コマンドを実行すると、環境変数を取得しない新しいシェルインスタンスが作成されるためです。





ec2-api-tools