我有一个需要访问 AWS API 的非 AWS 工作负载。出于安全目的,AWS 建议使用 IAM Roles Anywhere 生成临时凭证,而不是使用长期凭证(例如访问密钥)。
我现在准备通过我的信任锚信任的证书进行身份验证,并从角色获取临时凭据,但我不知道如何以编程方式执行此操作,而且我没有看到任何关于此主题的有用文档。
AWS 提供了一些命令行帮助工具,但我需要编写代码,而不是使用命令行应用程序。
我可能需要使用安全令牌服务,但我没有看到任何接受证书并返回凭据的方法。
AssumeRoleCommand
和 GetSessionTokenCommand
似乎是不错的候选者,但同样,我不确定如何在 Roles Everywhere 功能的上下文中使用它们。
我没有看到任何接受证书并返回凭据的方法
这是因为
CreateSession
,即 AssumeRole
周围的 X.509 包装器实际上没有 SDK 支持:
不包含在任何 SDK 或客户端中,因为还没有对 CreateSession 签名过程的本机 SDK 或客户端支持。CreateSession
您需要在 JS/TS 中手动实现签名过程,使用
rolesanywhere-credential-helper
的源代码作为支持。请注意,RolesAnywhereClient
是一个控制平面包,实际上并不签署请求。