首页 > 解决方案 > AWS SQS 错误:SignatureDoesNotMatch HTTP 错误:403

问题描述

我正在制作面部跟踪思想视频AWS RekognitionStartFaceSearch)。它将返回作业 ID。我已经设置了所有SQS SNS部件。在这里,我的问题是我无法使用receiveMessage(). 甚至listQueues()也不工作。它给出了以下错误。

https://sqs.us-east-1.amazonaws.com ”上的“ListQueues ”;AWS HTTP 错误:客户端错误:POST https://sqs.us-east-1.amazonaws.com导致403 Forbidden响应:<ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">Sender< Code >S (truncated...) SignatureDoesNotMatch ( client):我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。

此请求的规范字符串应该是 'POST / ....... < 继续......

代码如下。AWS PHP 开发工具包版本 3.64.11。

$queueUrl = "https://sqs.us-east-1.amazonaws.com/xxxxxxx/facetrackingreceive";
        // Get the client from the builder by namespace
        $sqs_client = new SqsClient(array(
            'credentials' => array(
                'key'    => 'xxxxxxxxxx',
                'secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
            ),
            'version' => '2012-11-05',
            'region'  => 'us-east-1',
            'http' => [ 'verify' => false ],

        ));

        $result = $sqs_client->listQueues();

        foreach ($result->get('QueueUrls') as $queueUrl) {
            echo "$queueUrl\n";
        }

提前致谢!

标签: phplaravelamazon-web-servicesamazon-sqsaws-php-sdk

解决方案


我已经通过再生解决了这个问题access key。我不能相信它,但它有一些问题。我从这个已关闭的问题中找到了这个想法。这个问题几乎是 4 年前我得到了同样的错误。

由于访问/密钥中的特殊字符可能会出现问题

重新生成密钥后AWS consoleSQS所有方法都适用于 new credentials。将此报告为Github 官方存储库上的错误。


推荐阅读