我使用AWS signV4对调用awsapi网关的请求进行签名。 使用带有头的请求不适合我的用例,因此需要使用签名的url和查询字符串。在
我使用了AWS Sample Python示例,它对IAM用户创建非常有用。在
在这两种情况下(IAM创建、API网关调用)使用相同的访问密钥和密钥,因此绝对不是错误的访问密钥/密钥问题。在
我已经添加了所有文档化的查询字符串,但是仍然得到以下错误。在
我错过了什么?在
以下是请求URL:
https://*******.execute-api.us-east-1.amazonaws.com/******?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=**********%2F20170424%2Fus-east-1%2Fexecute-api%2Faws4_request&X-Amz-Date=20170424T124521Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=**********821742cee7661ef3a0ab1e5c
在将其与execute api服务一起使用时,我收到以下错误:
^{pr2}$我还使用以下示例检查了java实现:AWS Signer Java 但结果是一样的。在
SigV4签名和此错误消息不是特定于API网关本身的。AWS端的签名算法和验证对于所有AWS服务都是通用的。在
你能比较一下错误消息中的规范字符串和发送请求时生成的规范字符串吗?这会帮助你找出问题所在。在
另外,检查一下step-by-step explanation看看你是否做得对。其中一个常见的问题是头名称的大小写敏感度和参数的排序顺序。在
相关问题 更多 >
编程相关推荐