AWS S3 Ошибка получения документа с использованием предварительно заданного URL-адреса: недопустимая дата (должно быть секунд с начала эпохи) - PullRequest
1 голос
/ 18 января 2020

Мы загрузили документ на AWS S3 и сгенерировали предварительно подписанный URL-адрес с использованием boto3 со сроком действия 100 лет.

Полученный предварительно подписанный URL-адрес http://my_document.s3.amazonaws.com/my_document.htm?Signature=AWS_GENERATED_SIGNATURE&Expires=4732867559&AWSAccessKeyId=MY_ACCESS_KEY

Однако, когда мы используем URL для доступа к документу, мы получаем следующую ошибку:

AccessDenied Недопустимая дата (должно быть секунд с начала эпохи): 4732867559 D7F5624326124615 AWS_HOST_ID

Почему AWS S3 отказывается открывать документ из-за значения времени истечения, которое он сам позволил нам использовать для генерации Предварительно подписанный URL?

Кто-нибудь здесь сталкивался с подобной проблемой при интеграции с AWS S3 с использованием boto3?

1 Ответ

1 голос
/ 18 января 2020

Почему AWS S3 отказывается открывать документ из-за значения времени истечения, которое он сам позволил нам использовать для создания предварительно подписанного URL?

S3 этого не допустил. Подписанные URL-адреса генерируются локально, и S3 не видит их и не знает о них (или не проверяет их подлинность или авторизацию для получения указанного объекта), пока вы на самом деле не попытаетесь их использовать.

Вероятно, это лучше всего охарактеризовать как ошибка в boto3 ... Срок действия подписи версии 2 привязан к эпохе Unix, которая заканчивается 2038-01-19T03: 14: 08Z («ошибка Y2.038K»). Это вряд ли будет исправлено на этом этапе, поскольку Подпись V2 устарела .

Теоретически, вы могли бы V2 подписать URL, срок действия которого не истекает до середины января 2038 года, но это не так. Это также жизнеспособно, поскольку подписанные URL-адреса (повторно) проверяются при каждом их использовании. Рекомендуется периодически поворачивать ключи, поэтому идентификатор ключа доступа AWS, который вы используете сегодня, не должен оставаться действительным через 100 лет или даже через 18 лет с настоящего момента до 2038 года. После того, как вы отключите эти конкретные учетные данные, любые URL-адреса они подписаны, больше не будут использоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...