【问题标题】:call AWS Elasticsearch Service API with cURL --aws-sigv4使用 cURL --aws-sigv4 调用 AWS Elasticsearch Service API
【发布时间】:2021-10-14 21:14:59
【问题描述】:

当我执行时

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"

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

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

我确信我的$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY 是正确的。

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

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

【问题讨论】:

    标签: amazon-web-services elasticsearch curl aws-signature


    【解决方案1】:

    此问题是由于路径中的* 字符引起的。 curl 存储库中有一个错误报告来修复此问题https://github.com/curl/curl/issues/7559

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

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 2017-05-29
      • 2017-12-07
      • 1970-01-01
      • 2017-03-23
      • 2021-05-21
      • 2018-08-15
      • 2016-03-01
      • 1970-01-01
      相关资源
      最近更新 更多