Postman调用Amazon Rekognition接口遇InvalidSignatureException错误求助
解决Postman调用AWS Rekognition时的InvalidSignatureException错误
嘿,看了你的问题,这个错误的根源很明确——你在签名凭证里把服务名称写错了!
先看你的Authorization请求头里的Credential部分:
Credential=XXXXXXXXXX/20180130/us-east-2/RekognitionService.ListCollections/aws4_request
这里的问题出在第四段:你填了RekognitionService.ListCollections(这是接口名称),但AWS V4签名要求这里必须填服务的标准名称,也就是rekognition。
第一步:修正签名凭证
把Credential里的服务段改成rekognition,修正后的Credential应该是:
Credential=XXXXXXXXXX/20180130/us-east-2/rekognition/aws4_request
第二步:用Postman内置的AWS签名功能更省心
其实你没必要手动构造Authorization头,Postman自带AWS Signature认证工具,能帮你自动生成正确的签名,避免这类低级错误:
- 打开你的请求,切换到「Auth」标签页
- 认证类型选择「AWS Signature」
- 填入你的IAM用户的
Access Key和Secret Key - 关键:在「Service Name」栏填写
rekognition,「Region」选择us-east-2 - 其他参数Postman会自动帮你处理(比如X-Amz-Date、签名值等)
额外的小提示
- Rekognition的API请求头里,
Content-Type应该设置为application/x-amz-json-1.1(你当前用的是application/x-www-form-urlencoded,虽然部分接口可能兼容,但标准格式是前者) ListCollections接口不需要请求体,你可以把请求体设为{},这样Content-Length会自动匹配,不用手动填写
修改完这些之后,再重新发送请求,应该就能正常调用ListCollections接口了!
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

