首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能使boto3忽略签名过期错误?

是否有可能使boto3忽略签名过期错误?
EN

Stack Overflow用户
提问于 2017-08-28 18:48:30
回答 3查看 2K关注 0票数 1

我正在测试一个使用boto3访问DynamoDB的Python应用程序,我从boto3获得了以下错误消息。

代码语言:javascript
复制
{'error': 
    {'Message': u'Signature expired: 20160915T000000Z is now earlier than 20170828T180022Z (20170828T181522Z - 15 min.)', 
     'Code': u'InvalidSignatureException'}}

我注意到这是因为我使用python包“freezegun.free_time”将时间冻结在20160915,因为测试使用的模拟数据是静态的。

我确实研究了一下这个错误,我找到了这个回帖。基本上,它是说AWS使签名在创建后的短时间内无效。根据我的理解,在我的例子中,由于使用了“冻结时间”,所以签名被标记为20160915,但是AWS使用当前时间(测试运行的时间)。因此,AWS认为此签名已过期近一年,并将错误消息发回。

有什么办法让AWS忽略这个错误吗?或者是否可以使用boto3手动修改签名创建的日期和时间?

如果我没有清楚地解释我的问题,请告诉我。任何想法都会受到赞赏。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-28 22:53:51

AWS调用使用时间戳来防止重放攻击。如果计算机时间/日期偏离实际时间太远,则API调用将被拒绝。

从设定为2016年的计算机上运行请求肯定会触发这种失败情况。

检查是在主机端完成的,因此除了使用实际日期(或以某种方式强迫Python使用与系统其他部分不同的日期)之外,您无法在本地修复任何问题。

票数 2
EN

Stack Overflow用户

发布于 2018-08-31 14:13:06

不动也遇到了类似的问题。我的解决方案是按照Antonio的建议,将datetimebotocore.auth替换为非模拟版本。

pytest示例如下所示

代码语言:javascript
复制
import types
from immobilus import logic

@pytest.fixture(scope='session', autouse=True)
def _boto_real_time():
    from botocore import auth
    auth.datetime = get_original_datetime()

def get_original_datetime():
    original_datetime = types.ModuleType('datetime')
    original_datetime.mktime = logic.original_mktime
    original_datetime.date = logic.original_time
    original_datetime.gmtime = logic.original_gmtime
    original_datetime.localtime = logic.original_localtime
    original_datetime.strftime = logic.original_strftime
    original_datetime.date = logic.original_date
    original_datetime.datetime = logic.original_datetime
    return original_datetime
票数 1
EN

Stack Overflow用户

发布于 2017-08-28 23:01:51

有什么办法让AWS忽略这个错误吗?

不是

或者是否可以使用boto3手动修改签名创建的日期和时间?

您应该修补botocore库的auth.py文件中的任何datetime / time调用(源:https://github.com/boto/botocore/blob/develop/botocore/auth.py)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45925531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档