小编Kir*_*ran的帖子

使用 AWS 签名版本 4 调用 REST API(无法签署 AWS API 请求)

我一直无法让 AWS API 调用工作。我正在尝试在我的网络上的 Linux 服务器上工作,以发出 REST API 来与我的企业 AWS 帐户进行交互。

我正在尝试使用签名版本 4 签署 AWS 请求。我需要在 AWS 实例上执行此操作吗?我有共享访问密钥、RSA 私有密钥(开始 RSA 私有密钥...结束 RSA 私有密钥)和 AWS 访问密钥(例如,AKAI... 值)。

我遇到的问题是创建规范请求。我收到错误“URL 格式错误”。Bash 解析我的 curl 但在此之后参数有问题:

curl -i ... -X GET / action=listusers ...

我正在尝试遵循以下说明:

http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

我认为我的命令应该可以工作,因为上面的链接将其显示为规范请求示例:

GET
/
Action=ListUsers&Version=2010-05-08
content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20150830T123600Z

content-type;host;x-amz-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Run Code Online (Sandbox Code Playgroud)

这有很多参数。对上述规范请求的 curl 命令将导致有关“格式错误的 url”的错误以及无法使用此行识别的 bash 命令:

content-type:application/x-www-form-urlencoded; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

以上说明没有说明如何确定URI。如何确定 URI?如何在正确解析 URI 的情况下使用长卷曲命令,以便在参数之间没有空格来调用 Bash 对无法识别的命令的响应?

我尝试了多种 curl 命令排列来列出与我的 AWS 账户关联的服务器或用户。似乎没有任何效果。

我想发出一个基本的 API 命令来验证它是否有效。我想列出 AWS 实例或列出与 AWS 账户关联的用户。但是我坚持创建规范请求,因为显然我不知道如何确定在 Curl 命令中使用哪个 URI …

rest bash curl amazon-s3 amazon-web-services

4
推荐指数
1
解决办法
6581
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

bash ×1

curl ×1

rest ×1