我想在浏览器中使用AWS SDK for JavaScript创建一个客户端(无服务器)应用程序。该工具的所有预期用户都拥有单独的IAM用户并可访问AWS Web Console。
我希望所有API调用都在各个IAM用户的上下文中执行,因此它们受每个用户的个人权限的约束,因此我可以看到谁在CloudTrail中做了什么。
由于不应该使用持久凭据来信任任何类型的浏览器本地存储,我不能简单地让用户输入他的秘密访问密钥并保留它。
但是我猜我可以在每个会话开始时请求用户的访问密钥ID和秘密访问密钥,然后用它调用STS GetSessionToken
,并仅将生成的临时安全凭证存储在会话存储,并将其用于以后的所有SDK使用。
当然,用户能够使用他们的IAM用户和密码登录而不是使用长而神秘的访问密钥(想想移动设备......)会更好。
IAM用户是否有任何类型的联合登录选项(将其重定向到AWS IAM登录页面),或者使用用户名和密码调用STS API?
答案 0 :(得分:1)
理想情况下,您想要的是通过IAM用户/密码组合登录。据我所知(和also see this),没有标准的方法可以做到这一点。
在my projects之一,我使用HTTP客户端模拟在线登录。如果您可以获得会话令牌,那可能对您有用。但它不支持MFA,并且依赖AWS身份验证实现的内部结构,该实现可能会在没有警告的情况下发生变化。