如何在浏览器中使用AWS SDK模拟IAM用户

How to impersonate individual IAM users with AWS SDK in the Browser

本文关键字:SDK AWS 模拟 IAM 用户 浏览器      更新时间:2024-06-04

我想在浏览器中使用AWS SDK for JavaScript创建一个客户端(无服务器)应用程序。该工具的所有预期用户都有独立的IAM用户,并可以访问AWS Web控制台。

我希望所有API调用都在各个IAM用户的上下文中执行,因此它们受每个用户的单独权限的约束,这样我就可以看到谁在CloudTrail中做了什么。

由于任何类型的浏览器本地存储都不应该被持久凭据信任,我不能简单地让用户输入一次他的秘密访问密钥并保存它

然而,我想我可以在每个会话开始时请求用户的访问密钥id和秘密访问密钥,然后用它调用STS GetSessionToken,并且只将生成的临时安全凭据存储在会话存储中,并将其用于以下所有SDK使用。

当然,对于用户来说,使用IAM用户和密码登录会更好,而不是使用长而神秘的访问密钥(想想移动设备…)。

IAM用户是否有任何联合登录选项(将他们重定向到AWS IAM登录页面),或使用用户名和密码调用STS API的方法?

理想情况下,您想要的是通过IAM用户/密码组合登录。据我所知(也看到这一点),没有标准的方法来做到这一点。

在我的一个项目中,我使用HTTP客户端模拟了在线登录。如果你能用它获得会话令牌,那对你来说就行了。但它不支持MFA,并且依赖于AWS身份验证实现的内部,该实现可能会在没有警告的情况下发生变化。