当我尝试使用 AWS CLI 连接到我的 Amazon S3 存储桶时,如何解决错误“Unable to locate credentials”?

上次更新日期:2020 年 12 月24 日

当我尝试使用 AWS 命令行界面 (AWS CLI) 访问我的 Amazon Simple Storage Service (Amazon S3) 存储桶时,收到错误消息。如何解决此问题?

解决方法

“Unable to locate credentials”错误表示 Amazon S3 找不到用于对 AWS API 调用进行身份验证的凭证。要解决此问题,请确保在 AWS CLI 中正确配置了 AWS 凭证。

注意:如果运行 AWS CLI 命令时仍然收到错误,请确保您使用的是最新的 AWS CLI 版本。

要检查 AWS CLI 是否配置了凭证,请运行以下命令:

$ aws configure list

如果在配置文件中配置了凭证,则该命令将返回类似于以下内容的响应:

Name                    Value             Type    Location
     ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD      config_file    ~/.aws/config
secret_key     ****************ABCD      config_file    ~/.aws/config
    region                us-west-2              env    AWS_DEFAULT_REGION

如果在实例配置文件中配置了凭证,则该命令将返回类似于以下内容的响应:

Name                Value                      Type           Location
     ----                 -----                      ----           --------
     profile                <not set>             None          None
access_key     ****************YVEQ      iam-role
secret_key     ****************2a9N       iam-role
       region                <not set>            None          None

查看响应以检查凭证是否丢失或者存储的凭证是否不正确。如果是这样,请更新凭证。

注意:AWS CLI 按特定顺序调用凭证提供程序,并在找到要使用的一组凭证时停止调用提供程序。这意味着,如果您在优先级更高的凭证提供程序上配置了错误的凭证,则会收到“Unable to locate credentials”错误。即使在优先级较低的提供程序上正确配置了凭证,也会遇到此错误。

更新凭证后,请运行 Amazon S3 AWS CLI 命令(例如 aws s3 ls)测试 AWS CLI。