上次更新日期:2021 年 5 月 10 日
为什么我在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行 AWS 命令行界面 (AWS CLI) 时收到了错误?
简短描述在您的实例上运行 AWS CLI 命令时,您可能会看到以下错误消息:
“无法找到凭证。您可以通过运行 'aws configure' 来配置凭证” “调用 DescribeInstances 操作时发生错误 (UnauthorizedOperation):您未获得授权来执行此操作” “调用 DescribeInstances 操作时发生错误 (AuthFailure):AWS 无法验证提供的访问凭证” “调用 GetCallerIdentity 操作时发生错误 (ExpiredToken):请求中包含的安全令牌已过期”错误中所列的操作会因出错时您调用的操作而变化。在前面的示例中,调用 DescribeInstances 和 GetCallerIdentity 操作时出现错误。
注意: 对于 AWS CLI 与其中一个 AWS 服务终端节点之间的通信问题,请确认 DNS 解析和任何 VPC 终端节点是否正常运行。有关更多信息,请参阅以下内容:
AWS PrivateLink 和 VPC 终端节点 如何创建 VPC 终端节点,以便在没有互联网访问权限的情况下使用 Systems Manager 管理私有 EC2 实例? Amazon DNS 服务器 解决方法 验证您运行的是最新的 AWS CLI 版本如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
无法找到凭证验证 AWS CLI 是否已安装并正确配置。
发生错误 (UnauthorizedOperation) 和 (AuthFailure) 确保 AWS Identity and Access Management (IAM) 角色或 IAM 用户具有运行相关命令所需的正确权限。有关解决方法的说明,请参阅为什么在我尝试启动 EC2 实例时会收到错误消息“您没有权限执行此操作”? 确保您的 Linux 或 Windows 实例上的时间正确。 确保您使用的是正确的 Amazon Simple Token Service (AWS STS) 令牌格式。有关更多信息,请参阅为什么我会在某些 AWS 区域收到 IAM 错误“AWS 无法验证提供的访问凭证”? 确保您使用正确的证书来执行 API 调用。如果该实例上有多组凭证,凭证优先顺序可能会影响该实例使用哪个凭证来执行 API 调用。运行 aws sts get-caller-identity 命令以验证您使用的是哪一组凭证。有关更多信息,请参阅为什么我的 Amazon EC2 实例使用 IAM 用户凭证而不是角色凭证? 发生错误 (ExpiredToken)临时凭证按照在创建过程中指定的时间间隔发生过期。如果 IAM 角色的凭证已过期,请通过担任新 IAM 角色获取新的 STS 令牌。