AWS S3 CLI - не удалось подключиться к URL-адресу конечной точки

117
$ aws s3 ls

Could not connect to the endpoint URL: "https://s3.us-east-1a.amazonaws.com/"

В чем может быть проблема?

Прабхат
источник
Это случилось со мной, когда я пытался создать домен облачного поиска us-east-2, я должен был использовать us-east-1?
Jason Goemaat

Ответы:

259

Вероятно, у вас что-то не так в вашем профиле по умолчанию для региона по умолчанию.

Проверьте свой файл по адресу ~/.aws/config, у вас есть что-то вроде

[default]
region=us-east-1a
...

Зафиксируйте регион, region=us-east-1и тогда команда будет работать правильно

Фредерик Анри
источник
3
У меня была аналогичная неправильная запись в ~ / .aws / config, которая была создана командой aws configure. По умолчанию он предложил название моего региона «Мумбаи», которое я принял. Это была проблема. Как только я заменил его на ap-south-1, команда (aws s3 ls) начала работать. Спасибо.
Anurag
1
Большое спасибо. Те немногочисленные волосы, которые остались на моей голове, теперь в безопасности еще на несколько мгновений ...
Copper.hat
1
Спасибо. Понятия не имею, как вы это узнали.
user890332
2
У меня была подобная ошибка, и обнаружили , что он также может быть решена путем определения области в качестве опции командной строки: aws s3 ls --region us-east-1.
Курт Пик
3
Я бы хотел, чтобы у них была возможность отправлять финансовые пожертвования на такие ответы.
RayLoveless
8

сначала вы используете aws configure, затем вводите ключ доступа, секретный ключ и регион. регион, который вы вводите, будет важен для этой проблемы. попробуйте ввести что-то вроде s3.us-east-1, а не s3.us-east-1a. это решит проблему.

Fraya
источник
6

Некоторые сервисы AWS доступны только в определенных регионах, которые не соответствуют вашему фактическому региону. В этом случае вы можете изменить стандартную настройку, добавив регион в вашу фактическую команду cli.

Это может быть удобным решением для людей, которые не хотят изменять свой регион по умолчанию в файле конфигурации. ЕСЛИ ваш общий файл конфигурации не установлен: проверьте предложения выше.

В этом примере регион вынужден использовать eu-west-1 (например, Ирландия):

aws s3 ls --region=eu-west-1

Протестировано и использовано с aws workmail для удаления пользователей:

aws workmail delete-user --region=eu-west-1 --organization-id [org-id] --user-id [user-id]

Я заимствовал эту идею из этой беседы, и она идеально мне подходит - поэтому я хотел ею поделиться. Надеюсь, поможет!

Томас Тиманн
источник
5

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

Для Linux или Mac

$ export HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

$ export HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT>

Для Windows

set HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

set HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT> aws cli Windows

введите описание изображения здесь

imTheManager
источник
5

Вы должны указать регион в своем сценарии CLI, а не полагаться на регион по умолчанию, указанный с помощью aws configure (как утверждает текущий самый популярный ответ). Другой ответ ссылался на это, но синтаксис неверен, если вы используете CLI через AWS Tools для Powershell.

В этом примере регион принудительно устанавливается на us-west-2 (Северная Калифорния), синтаксис PowerShell:

aws s3 ls --region us-west-2
Люк
источник
2

Возможно, что-то не так с регионом по умолчанию при настройке aws. В вашем случае URL говорит « https://s3.us-east-1a.amazonaws.com/ »

В командной строке

aws configure, введите свои ключи, теперь исправьте свой регион от us-east-1a до us-east-1 .

Пожалуйста, проверьте синтаксис в соответствии с используемым интерфейсом командной строки. Это будет полезно.

Сонал
источник
1

Предполагая, что ваш профиль в ~/aws/configиспользует регион (вместо AZ в соответствии с вашим исходным вопросом); другая причина - неспособность вашего клиента подключиться s3.us-east-1.amazonaws.com. В моем случае мне не удалось разрешить это DNS-имя из-за ошибки в конфигурации моей сети. Устранение проблемы с DNS решило мою проблему.

Канада
источник
0

Я сделал пару вещей, чтобы исправить это:

  1. Обновил мой интерфейс командной строки и выдал эту ошибку (предыдущая ошибка была " aws connection aborted error 10013")
  2. Пытался выполнить nslookup aws s3 endpoing: nslookup s3.us-east-2.amazonaws.com

    Истекло время ожидания DNS-запроса. таймаут составил 2 секунды. Сервер: Неизвестный адрес: 192.168.10.1

-> хммм очень странно

  1. Перешел к устранению неполадок сети Windows и выбрал для проверки доступа к определенной странице. Сообщается, что брандмауэр Windows заблокировал соединение. Исправлено это

  2. Получена новая ошибка после исправления запроса через firewal:

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

  3. Дата и время обновлены на автоматические -> Исправлено

Владислав Диденко
источник
0

Вы должны сделать следующее в интерфейсе командной строки: 1. aws configure '
2. введите ключ доступа 3. введите секретный ключ 4. а затем регион, например: eu-west-1 (оставьте a или b после 1)

Адам Али
источник
0

У всех разные настройки по умолчанию, и, что интересно, со временем они будут меняться. Например, сначала я был на global, а затем через 15 минут он показывает Огайо (который есть us-east-2).

Лучше всего проверять его во время работы - в консоли рабочей области AWS просто установите его справа вверху рядом со своим именем на верхней панели, проверьте название своего региона и нажмите стрелку вниз, чтобы увидеть свой регион.

В AWS CLI введите aws configureили aws2 configureукажите свой доступ и секретный идентификатор, затем в регионе по умолчанию введите свой регион и нажмите Enter.

Вы обязательно получите доступ к определенному набору регионов, и он будет работать.

Ведант Дэйв
источник
0

Решением моей проблемы было запустить:

    sudo aws configure

Введите свои учетные данные, а затем запустите:

    sudo aws s3 ls

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

Николь Дуглас
источник
0

В Windows снова запустите команду aws configure и сбросьте регион без буквы, например, если ваш регион - us-east-1a, вам нужно изменить его на us-east-1, чтобы он работал.

введите описание изображения здесь

techjunkie
источник