“您提供的AWS Access Key ID在我们的记录中不存在。”尝试使用AWS CLI时

时间:2018-11-02 23:37:38

标签: amazon-web-services amazon-s3 aws-cli

我正在尝试通过cli访问我的S3存储桶。我已经进行了所有设置,例如在进行此cli工作的地方有一个credentials文件,请确保$AWS_SECRET_ACCESS_KEY$AWS_ACCESS_KEY_ID的环境变量中包含正确的内容,并手动进行使用aws configure设置它们。

credentials包含以下信息,所有信息都为空白:

[sts]
aws_access_key_id = ASIAXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXX
aws_security_token = XXXXXXXXXXXXXXXXXXXXXX
aws_session_expiration = 2018-11-03T00:21:25+0000
aws_session_token = XXXXXXXXXXXXXXXXXXXXXXX
[default]
aws_access_key_id = ASIAXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXX

还要确保已完成所有设置,我还运行了aws configure

(venv) ~/.aws $ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XXXX shared-credentials-file
secret_key     ****************XXXX shared-credentials-file
    region  

          us-east-1      config-file    ~/.aws/config

但是,当我运行以下命令时,它说我有此错误:

(venv) ~/.aws $ aws s3 sync s3://mybucket/my/path ~/my/path
fatal error: An error occurred (InvalidAccessKeyId) when calling the ListObjectsV2 operation: The AWS Access Key Id you provided does not exist in our records.

我不知道如何解决此问题,并用尽了我所有的Google搜索选项。

1 个答案:

答案 0 :(得分:4)

ASIA开头的凭据是通过安全令牌服务生成的临时凭据,必须与令牌一起使用。

运行aws s3 sync命令时,它使用的是[Default]凭据,但未定义aws_security_token

尝试将--profile sts添加到命令中,以使其使用[sts]凭据。