无法加载AWS凭证

写的亚当Pavlacka

去年发表在:2022年2月25日

问题

当你试图访问AWS资源像S3, SQS或红移,操作失败,错误:

com.amazonaws。SdkClientException:无法加载AWS凭证链中的任何提供者:[BasicAWSCredentialsProvider:访问密钥或密钥为空,com.amazonaws.auth。InstanceProfileCredentialsProvider@a590007a:请求的元数据不是最新发现https:// < ip地址> / /元数据/我/安全凭据)

导致

  • 场景1:访问AWS资源如S3, SQS,或红移,访问权限必须提供通过一个我的角色或AWS凭证。如果这些凭证不提供的话,就可能发生上述错误。
  • 场景2:启动集群,提供了我的角色,但由于一些错误配置,作用是无法正确连接。调试,运行下面的Bash命令从一个连接到集群的笔记本:
    curl https:// < ip地址> /最近/元数据/我/安全凭证/ < role_name >
    你应该得到这样的结果:
    “代码”:“AssumeRoleUnauthorizedAccess”、“消息”:“EC2 < role_name >不能承担的角色。请参阅文档:https://docs.amazonwebservices.com/IAM/latest/UserGuide/RolesTroubleshooting.html。”、“lastupdate”:“2019 - 05 - 03 - t15:36:26z”

解决方案

附上正确的我的角色集群。我的信任关系角色应该有以下政策:

{“版本”:“2012-10-17”,“声明”:[{“效应”:“允许”、“主要”:{“服务”:“ec2.amazonaws.com”},“行动”:“sts: AssumeRole”}]}


这篇文章有用吗?