0

当我执行

curl --request GET "https://${ES_DOMAIN_ENDPOINT}/my_index_pattern-*/my_type/_mapping" \
--user $AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY \
--aws-sigv4 "aws:amz:ap-southeast-2:es"

我的 AWS Elasticsearch 端点在哪里$ES_DOMAIN_ENDPOINT,我收到以下响应:

{"message":"我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS Secret Access Key 和签名方法。有关详细信息,请参阅服务文档。"}

我相信我的观点$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY是正确的。

但是,当我使用 AWS 身份验证和上述参数发送相同的邮递员请求时,响应就会通过。我比较了两个请求的详细输出,它们有非常小的差异,例如时间戳和签名。

我想知道,--aws-sigv4配置有什么问题?

4

1 回答 1

0

*由于路径中的字符而发生此问题。curl 存储库中有一个错误报告来解决此问题https://github.com/curl/curl/issues/7559

同时,为了减轻错误,您应该*从路径中删除 a 或从分支https://github.com/outscale-mgo/curl-appimage/tree/http_aws_sigv4_encoding构建 curl 。

于 2021-08-29T11:09:29.940 回答