Подтвердить что ты не робот

EC2 API Ошибка проверки учетных данных доступа

Я установил ec2 api после руководства Amazon. Я установил идентификатор доступа и секрет как переменную среды.

Вот мой профиль:

export 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

Everythings выглядит сконфигурированным как заданный, но я не могу подключиться к aws.

Здесь вывод команды ec2-описать-регионы в подробном режиме:

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
4b9b3361

Ответ 1

Убедитесь, что синхронизация сервера .

Если часы задерживаются, может вызвать эту ошибку:

AWS was not able to validate the provided access credentials

Ответ 2

Я столкнулся с этой проблемой, когда мои системные часы были установлены ложно.

В моем случае часы работали на два часа.

Не менее важно поместить команды в ваш .bashrc или аналогичный файл (.bash_aliases):

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

Когда выполняется source ~/.bashrc

Причиной значимости этого является то, что при запуске команды ec2 создаются новые экземпляры оболочки, которые в противном случае не получают переменные среды.

Ответ 3

Запустите aws s3 ls чтобы подтвердить, связана ли ошибка с синхронизацией времени. Вы должны получить ошибку как:

Произошла ошибка (RequestTimeTooSkewed) при вызове операции ListBuckets: разница между временем запроса и текущим временем слишком велика.

Если это так, попробуйте синхронизировать дату и время, как предложено.

Пример команд оболочки в 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'

Смотрите также: Настройка локального времени. dpkg-переконфигурировать tzdata.

Ответ 4

AWS CLI работал отлично для меня, но внезапно он начал проваливаться со следующей ошибкой

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

Пробовал новый набор учетных данных, однако это не помогло.

Он работал только после того, как стоп-старт был выполнен на экземпляре EC2 (возможно, перезагрузка также могла работать). Следовательно, это, по-видимому, проблема с конкретным экземпляром EC2, из которого был выполнен aws cli.

Ответ 5

У меня была похожая проблема. Часы на моем локальном сервере были выключены. Я исправил это с помощью следующей команды.

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

Затем все работает.

Ответ 6

Это также может быть связано с проблемой, зависящей от того, в какой регион вы пытаетесь попасть. У меня есть сценарий, который пытается взять на себя роль во всех регионах, и я продолжал получать его в Гонконге (ap-east-1). Вы должны сначала включить этот регион, чтобы получить к нему доступ. Вы получите эту ошибку для следующих регионов, если они не включены:

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

Как ни странно, ap-northeast-3 также выдает ошибку, но это ошибка OptInRequired.