AWS凭证已刷新但仍过期

时间:2018-06-11 15:58:35

标签: amazon-web-services amazon-s3

任何人都知道以下错误意味着什么?

#aws s3 ls

Credentials were refreshed, but the refreshed credentials are still expired.

我从服务器上的命令行运行它,已经更新了几次键,但是得到了我之前没见过的错误

5 个答案:

答案 0 :(得分:2)

我与AWS支持部门就此进行了讨论,他们提供了一个不涉及更改TZ的解决方案。他们建议的是检查分配给你的instanc的IAM角色。

从受影响的实例运行此命令。

curl -v http://169.254.169.254/latest/meta-data/iam/security-credentials/IAM-ROLE

检查

的到期日期
{
  "Code" : "",
  "LastUpdated" : "",
  "Type" : "",
  "AccessKeyId" : "",
  "SecretAccessKey" : "",
  "Token" : "",
  **"Expiration" : ""**

}

在我的情况下,到期日显示了昨天的值。这些是临时凭证,应该经常刷新,但在这种情况下,它们刷新但是到期日期没有改变。这解释了错误AWS Credentials Refreshed but Still Expired

要解决

只需取消附加并重新附加与您的实例关联的角色即可获取新的临时凭据并再次尝试S3命令。

答案 1 :(得分:0)

谢谢你们,现在已经解决了。

我完全不知道是什么导致了它,但我尝试了

  1. 重新生成新的AWS密钥
  2. 重新创建用户
  3. 更改TZ以匹配铲斗区域TZ
  4. 卸载/重新安装awscli
  5. 完成上述所有操作后,我开始

    Could not connect to the endpoint URL: "https://s3.Tokyo.amazonaws.com/"
    

    搜索后通过在东京与东北1交换来解决问题。

答案 2 :(得分:0)

如果您在虚拟机上,则可能与您的时区有关。将其更改为“自动设置时间”。

答案 3 :(得分:0)

理想情况下,分离和附加角色是可行的,但就我而言,它不适用于GUI。因此,我不得不使用CLI从EC2服务器中删除IAM角色关联。

这就是我所做的:

  • 打开对EC2拥有权限的AWS CLI或AWS-Shell

  • 然后找到您的实例ID的instance-profile-association ID,如下所示: ec2 describe-iam-instance-profile-associations --filters Name =“ instance-id”,Values =“ i-abcq34redfsl34534

  • 使用上面输出中的 associationID 取消关联IAM实例配置文件,如下所示:

ec2 disassociate-iam-instance-profile --association-id iip-assoc-qwerty123456

  • 再次从GUI和voilà上添加IAM角色,就可以了。

您可以使用以下EC2实例上的链接来验证关联:

curl -v http://169.254.169.254/latest/meta-data/iam/security-credentials/IAM-ROLE

答案 4 :(得分:0)

我刚刚遇到了这个问题,我尝试分离并重新附加上面指定的角色。我无法在服务器运行时分离角色,但在关闭服务器后该过程工作正常。

我使用 EC2 Instances 菜单选项从 GUI 控制台分离角色: 操作 -> 安全 -> 修改 IAM 角色

在删除角色然后重新附加它并重新启动服务器后,一切又恢复了。