如何使用 AWS API 在请求中传递访问凭证



我正在尝试使用 AWS API 传递请求,但收到此错误

AWS was not able to validate the provided access credentials

我的要求是:

https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-6df1e514&KeyName=key1&InstanceType=t2.micro&Placement.AvailabilityZone=us-west-2&AWSSecretAccessKey=**********************&AWSAccessKeyId=******************

我的访问凭据是正确的,这是毫无疑问的。 我发现问题可能是由时钟延迟引起的,但我的电脑时钟是正确的。 有人可以帮助我,我没有找到解决方案。

在进行 API 调用时,您绝不会将秘密访问密钥发送到 AWS。相反,您可以使用访问/密钥对请求进行签名(如此处所述(。您可以在此处阅读有关签名的更多信息。

理想情况下,使用 JavaScript SDK,而不是手动生成查询请求。

您还应该轮换您正在使用的凭据,因为您已经公开了密钥。

您在哪里找到这种通过将访问密钥和密钥作为参数传递的身份验证方式?

像java-sdk或boto3这样的AWS开发工具包提供了易于使用的API来进行此类调用,因此我建议使用它们。

另请查看 AWS API 调用所需的身份验证机制: http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html