如何修复使用 AWS CLI 连接到 Amazon 服务时出现的“Unable to locate credentials”错误?

2 分钟阅读
0

当我尝试使用 AWS 命令行界面(AWS CLI)访问 Amazon Simple Storage Service(Amazon S3)存储桶时,出现错误。

解决方法

“Unable to locate credentials”错误表示您与之交互的 AWS 服务找不到用于验证 AWS API 调用的证书。例如,这可能是一项 AWS 服务(如 Amazon S3)。要解决此问题,请确保在 AWS CLI 中正确配置 AWS 凭证。

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 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             ****************N36N      env    
secret_key             ****************cxxy      env    
region                 <not set>                 None            None

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

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

如果未设置凭证,则命令将返回以下输出:

Name                    Value             Type                Location
----                    -----             ----                --------
profile                <not set>          None                None
access_key             <not set>          None                None
secret_key             <not set>          None                None
region                 <not set>          None                None

查看响应以检查凭证是否缺失或存储的凭证是否不正确。

实例配置文件可能已附加到 Amazon EC2 实例,但由于配置的信任策略中的 AssumeRole 问题,仍然无法加载凭证。有关更多信息,请参阅检索实例元数据

如果该命令在您检索实例元数据时返回以下输出,则信任策略中的 AssumeRole 受到限制:

{
  "Code" : "AssumeRoleUnauthorizedAccess",
  "Message" : "EC2 cannot assume the role EXAMPLEROLE.  Please see documentation at https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_errors-info-doc.",
  "LastUpdated" : "2024-04-03T09:49:40Z"
}

查看响应,检查凭证是否缺失、IAM 信任策略是否配置不正确或存储的凭证是否不正确。有关更多信息,请参阅适用于 Amazon EC2 的 IAM 角色

AWS 官方
AWS 官方已更新 5 个月前