作为先决条件,请参阅此页面。
所以我可以创建一个小应用程序,它实际上是他们提供的代码的复制粘贴。它确实为给定的用户运行,我已将全局变量更改为正确的值,并且我可以通过 AWS CLI 承担我想要的 STS 角色。但是,此代码仍不会承担适当的角色。
我将代码导出为可执行 jar,将其放到我的 EC2 实例(基本 AWS linux 实例)上,然后运行它。我确实让它从 STS 凭证中输出正确且正确的密钥,但是一旦它到达 S3 客户端,我就会被拒绝访问(403)。
我的角色如下:
- EC2没有角色,但在凭证文件中有一个用户访问信息(我们称他为MyUser)
- MyUser 能够承担 STS 角色和 IAM 功能(IAM 功能不是必需的,仅用于测试目的)
- STS 角色只能由 MyUser 承担,并允许在帐户内完全访问 S3
AWS 文档有时会受到打击或错过,但我找不到其他人遇到此代码问题。就像我说的,如果我通过 CLI 执行相同的过程来承担 STS 角色,我可以做到这一点并且它可以正常工作,这使得这更加令人困惑。
提前感谢任何可以提供帮助的人!