我们设置了IAMangular色,允许通过Oktaauthentication的联合用户访问AWS控制台。
某些用户需要临时AWS访问密钥才能在本地使用AWS命令行工具。
这些用户有什么方法可以在AWS控制台或shell脚本中创build临时访问密钥?
在最近的一个项目中,我需要用户能够使用Okta访问AWS控制台并使用AWS CLI。 因此,我编写了一个工具,可以使用从CLI中使用的Oktalogin名生成的SAML断言生成临时AWS凭证(来自STS)。
这允许所有的AWS访问都可以通过Okta进行中介,并允许MFAlogin对于控制台和CLI访问都是必需的。
okta_aws_login.py这个工具可以在GitHub上find ,其他的细节可以在我写的关于使用Okta和AWS设置用户联合的系列文章中find。
如果我正确理解了您的用例,那么这是不可能的,因为从后台GetFederationToken API操作产生的临时凭证本身不能用于调用这些STS API,请参阅AWS STS API的比较function表以获取详细信息。
此function需要由负责长期AWS凭证(Okta)的实体提供,该凭证可提供将产生的临时凭证三重复制到AWS CLI场景中以进行复制/粘贴。
我最终创build了一个我们内部运行的小型webapp ,它将为我们的用户使用AssumeRole发出临时的AWS证书。 它有两种操作模式:
使用SSO:用户访问一个url,并看到他可以复制的凭据。
命令行客户端:向webapp发送https请求(使用Okta用户名和密码)。 如果Oktaauthentication成功,则客户端将凭据写入〜/ .aws / credentials。