Я использую следующую команду в некоторых экземплярах ec2, чтобы получить некоторые файлы конфигурации из корзины s3. К ec2 прикреплена роль экземпляра с полными разрешениями s3:

aws s3 cp s3://bucket-name/file ./ --region eu-west-1

Это работает, как ожидалось, в некоторых экземплярах, предоставленных мной с ami по умолчанию, но в некоторых существующих экземплярах в том же регионе и AZ с той же ролью экземпляра я столкнулся со следующей ошибкой:

Connect timeout on endpoint URL: "https://bucket-name.eu-west-1.amazonaws.com/?list-type=2&delimiter=2%F&prefix=&encoding-type=url"
failed to run commands: exit status 255

Мой вопрос в том, почему S3Uris не имеет префикса s3: // и возвращает ошибку с URL-адресом https: //? ясно, что эта версия aws cli пытается достичь s3 через https, а не через конечную точку s3: //, указанную мной в команде. Есть ли способ перезаписать это?

0
Catalina Cenan 20 Июл 2020 в 10:21

1 ответ

Лучший ответ

Мой вопрос в том, почему S3Uris не имеет префикса s3: // и возвращает ошибку с URL-адресом https: //?

За кадром aws cli вызывает сервисы AWS, используя HTTPS, поэтому по истечении времени ожидания вы видите тайм-аут https://bucket-name.eu-west-1... вместо s3://.

По умолчанию интерфейс командной строки AWS отправляет запросы к сервисам AWS с использованием HTTPS на TCP-порт 443. Для успешного использования интерфейса командной строки AWS необходимо иметь возможность устанавливать исходящие подключения на TCP-порт 443.

aws-cli-chap-using

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

Вы можете просто проверить это, выполнив ping google.com, если он не отвечает, тогда экземпляр в частной подсети без NAT или не имеет разрешенного исходящего трафика.

1
Adiii 20 Июл 2020 в 10:37
1
Понятно, спасибо, это была конфигурация маршрута на уровне подсети.
 – 
Catalina Cenan
20 Июл 2020 в 11:08