【问题标题】:"The AWS Access Key Id you provided does not exist in our records." when trying to use AWS CLI“我们的记录中不存在您提供的 AWS 访问密钥 ID。”尝试使用 AWS CLI 时
【发布时间】:2019-02-19 10:22:20
【问题描述】:

我正在尝试通过 cli 访问我的 S3 存储桶。我已经设置好了所有东西,例如有一个 credentials 文件,我正在执行这个 cli 工作,确保我的 $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.

我不知道如何解决这个问题,并且用尽了我所有的谷歌搜索选项。

【问题讨论】:

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


    【解决方案1】:

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

    当您运行 aws s3 sync 命令时,它使用的是未定义 aws_security_token 的 [默认] 凭据。

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

    【讨论】:

    • 我最终使用 Cyber​​duck 来做所有事情,但我相信这会奏效,所以我给你答案。
    • 补充说明;即使您的配置文件设置正确,而且还设置了$AWS_SECRET_ACCESS_KEY$AWS_ACCESS_KEY_ID 环境变量,您也需要设置$AWS_SECURITY_TOKEN。当看到这些环境变量时,配置文件将被忽略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2017-10-10
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多