AWS与以色列时间不同步 - 导致安全错误

时间:2013-09-11 09:47:59

标签: django amazon-web-services amazon-s3 clock django-storage

与AWS服务连接时,the connection time should be max 15 minutes for security reasons.

今年在以色列,冬季时钟变化推迟了大约2个月。

但亚马逊似乎并不知道,所以如果正确的以色列时间是下午14:00,亚马逊时间是下午13:00。

这种情况会导致服务的每个请求都失败(特别是S3)


  1. 选项1是亚马逊修复它,但可能需要一些时间。

  2. 选项2是手动更改服务器上的时间 请求。

  3. 但是,在我的情况下,这是不可能的,因为服务器是VM,我没有权限更改时间。

    还有其他方法可以解决这个问题吗?以某种方式在连接亚马逊服务时改变服务器上的时间?

    我正在使用django与django-storages(boto)连接S3

3 个答案:

答案 0 :(得分:3)

如果S3无法解决问题并且您不想调整服务器的时间,则可以通过修改boto源代码(请参阅HmacAuthV1Handler->add_auth)或{{3}来补偿日期差异原始的boto代码。

答案 1 :(得分:1)

以色列的时区变化在IANA time zone database的2013d版本中进行了说明。在Python中,这是通过pytz实现的。

根据these docs,Django 可选使用pytz。因此,您应该:

  • 确保您在Django中使用pytz
  • 确保您拥有2013年的pytz更新。

如果您还没有,还应该向亚马逊提出支持事件。他们确实应该在其操作系统上保持IANA TZDB更新。

答案 2 :(得分:1)

@YardenST:AWS只需要知道您的请求是由您签署的,并在您的最后进行了正确的时区转换。您的服务器软件需要正确处理时区到UTC的转换。如果您无法修复服务器的时间,那么dcro就有了正确的想法。

Matt Johnson说:

  

如果您还没有,还应该向亚马逊提出支持事件。他们确实应该在其操作系统上保持IANA TZDB更新。

是的,但是YardenST从未说过他在EC2上运行Amazon Linux。如果他是,那么是的,这将是要做的事情。但话说回来,您可以根本访问EC2服务器,因此更新软件包仍然存在用户空间问题。