Django AWS与以色列时间不同步,导致安全错误
连接AWS服务时 今年在以色列,冬季时钟的变化推迟了大约两个月 但是亚马逊似乎不知道,所以如果以色列的正确时间是下午14:00,亚马逊的时间是下午13:00 这种情况会导致对服务的每个请求都失败(特别是S3)Django AWS与以色列时间不同步,导致安全错误,django,amazon-web-services,amazon-s3,clock,django-storage,Django,Amazon Web Services,Amazon S3,Clock,Django Storage,连接AWS服务时 今年在以色列,冬季时钟的变化推迟了大约两个月 但是亚马逊似乎不知道,所以如果以色列的正确时间是下午14:00,亚马逊的时间是下午13:00 这种情况会导致对服务的每个请求都失败(特别是S3) 选择1是亚马逊修复它,但这可能需要时间 选项2是手动更改服务器上的时间,使 请求 但是,在我的例子中,这是不可能的,因为服务器是一个VM,我没有更改时间的特权 还有别的办法解决这个问题吗?在连接amazon服务时,以某种方式更改服务器上的时间 我使用django with django
我使用django with django storages(boto)与S3连接如果S3无法解决问题,并且您不想调整服务器的时间,您可以通过修改boto源代码来补偿日期差异(请参见
HmacAuthV1Handler->add_auth
)或者通过原始boto代码。如果S3没有解决问题,并且您不想调整服务器的时间,您可以通过修改boto源代码来补偿日期差异(请参见HmacAuthV1Handler->add_auth
)或者通过原始的boto代码。以色列的时区变化在2013d版本的。在Python中,这是通过实现的
根据,Django可以选择使用pytz。因此,你应该:
- 确保您在Django中使用pytz
- 确保您有pytz的2013d更新
如果您还没有向Amazon提出支持事件,那么您也应该向Amazon提出支持事件。他们真的应该掌握IANA TZDB在其操作系统上的更新情况。以色列的时区变化在2013d版本的。在Python中,这是通过实现的 根据,Django可以选择使用pytz。因此,你应该:
- 确保您在Django中使用pytz
- 确保您有pytz的2013d更新
如果您还没有向Amazon提出支持事件,那么您也应该向Amazon提出支持事件。他们真的应该掌握他们操作系统上的IANA TZDB更新。@YardenST:AWS只需要知道请求是由您签署的,并且您端有正确的时区转换。服务器的软件需要正确处理时区到UTC的转换。如果您不能确定服务器的时间,那么您的想法是正确的 他说: 如果您还没有向Amazon提出支持事件,那么您也应该向Amazon提出支持事件。他们真的应该掌握操作系统上的IANA TZDB更新
是的,但从未说过他在EC2上运行AmazonLinux。如果他是,那么是的,那就是应该做的事。但是,同样,您拥有EC2服务器的root访问权限,因此更新软件包仍然是一个用户问题。@YardenST:AWS只需要知道请求是由您以正确的时区转换签署的。服务器的软件需要正确处理时区到UTC的转换。如果您不能确定服务器的时间,那么您的想法是正确的 他说: 如果您还没有向Amazon提出支持事件,那么您也应该向Amazon提出支持事件。他们真的应该掌握操作系统上的IANA TZDB更新
是的,但从未说过他在EC2上运行AmazonLinux。如果他是,那么是的,那就是应该做的事。但话说回来,您拥有对EC2服务器的root访问权限,因此更新软件包仍然是一个用户问题。我没有使用EC2。在调查该问题时,我发现我的服务器没有返回正确的GMT时间(日期--utc),这可能是导致错误的原因,因为这是boto向amazon发送请求时使用的时间。我没有使用EC2。在调查该问题时,我发现我的服务器没有返回正确的GMT时间(日期--utc),这可能是导致错误的原因,因为这是boto向amazon发送请求时使用的时间。如何修补代码以修复此问题?代码会很好,但也会有一个指导建议:在boto
HmacAuthV1Handler
类中覆盖add\u auth
方法(原始代码位于auth.py
),并调整代码标题['Date']=formatate(usegmt=True)
以补偿时差。如何修补代码以解决此问题?代码会很好,但也会有一个指导建议:在botoHmacAuthV1Handler
类中覆盖add_auth
方法(原始代码位于auth.py
),并调整代码标题['Date']=formatdate(usegmt=True)
,以补偿时间差。