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

时间:2017-07-13 08:49:02

标签: api amazon-web-services aws-sdk

我尝试使用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=******************

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

2 个答案:

答案 0 :(得分:1)

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

理想情况下,请使用JavaScript SDK而不是手动生成query requests

您还应该使用rotate the credentials,因为您已经公开了密钥。

答案 1 :(得分:0)

通过将access-key和secret-key作为参数传递,您在哪里找到了这种身份验证方式?

AWS SDK(如java-sdk或boto3)提供了易于使用的API来进行此类调用,因此我建议您使用它们。

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