我尝试使用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=******************
我的访问凭据是正确的,毫无疑问。 我发现问题可能是由时钟延迟造成的,但我的电脑的时钟是正确的。 有人可以帮助我,我找不到解决方案。
答案 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