AWS не синхронизирован с израильским временем, что приводит к ошибкам безопасности

При подключении к сервису AWS время подключения не должно превышать 15 минут по соображениям безопасности.

В этом году в Израиле перевод часов на зиму откладывается примерно на 2 месяца.

Но Amazon, кажется, не знает об этом, поэтому, если правильное израильское время — 14:00, для Amazon — 13:00.

Эта ситуация приводит к сбою каждого запроса к службе (в частности, S3).


  1. Вариант 1 заключается в том, что Amazon исправит это, но это может занять некоторое время.

  2. Вариант 2 — вручную изменить время на сервере, который делает запросы.

Однако в моем случае это невозможно, потому что сервер — это виртуальная машина, и у меня нет прав на изменение времени.

Есть ли другой способ исправить это? как-то изменить время на сервере при подключении сервиса амазон?

Я использую django с django-storages (boto) для подключения к S3.


person YardenST    schedule 11.09.2013    source источник


Ответы (3)


Если S3 не устраняет проблему и вы не хотите корректировать время своего сервера, вы можете компенсировать разницу в дате, изменив исходный код boto (см. HmacAuthV1Handler->add_auth) или monkey patching исходный код boto.

person dcro    schedule 11.09.2013
comment
как бы вы пропатчили код, чтобы исправить эту проблему? код будет отличным, но руководство также будет оценено - person YardenST; 12.09.2013
comment
Просто перезапишите метод add_auth в классе HmacAuthV1Handler boto (исходный код находится в auth.py) и скорректируйте код headers['Date'] = formatdate(usegmt=True), чтобы компенсировать разницу во времени. - person dcro; 13.09.2013

Изменения часовых поясов Израиля учитываются в версии 2013d базы данных часовых поясов IANA. В Python это реализовано через pytz.

Согласно этим документам, Django опционально использует питц. Поэтому вам следует:

  • Убедитесь, что вы используете pytz в Django.
  • Убедитесь, что у вас установлено обновление 2013d для pytz.

Вам также следует обратиться в службу поддержки Amazon, если вы еще этого не сделали. Им действительно следует следить за обновлениями IANA TZDB в своих операционных системах.

person Matt Johnson-Pint    schedule 11.09.2013

@YardenST: AWS нужно только знать, что запрос был подписан вами с правильным преобразованием часового пояса с вашей стороны. Программное обеспечение вашего сервера должно правильно обрабатывать преобразование часового пояса в UTC. Если вы не можете исправить время вашего сервера, тогда dcro имеет правильную идею.

Мэтт Джонсон сказал:

Вам также следует обратиться в службу поддержки Amazon, если вы еще этого не сделали. Им действительно следует следить за обновлениями IANA TZDB в своих операционных системах.

Да, но YardenST никогда не говорил, что использует Amazon Linux на EC2. Если бы он был, то да, это было бы то, что нужно сделать. Но опять же, у вас есть root-доступ к серверам EC2, поэтому обновление ваших пакетов по-прежнему является проблемой для пользователя.

person Ryan Parman    schedule 12.09.2013
comment
Я не использую EC2. при исследовании проблемы я обнаружил, что мой сервер не возвращает правильное время по Гринвичу (дата --utc), что, вероятно, вызывает ошибку, потому что это время, которое boto использует при отправке запросов на amazon. - person YardenST; 12.09.2013