如何使用 Node.js 以编程方式使用 AWS Roles Anywhere 获取临时凭证?

问题描述 投票:0回答:1

我有一个需要访问 AWS API 的非 AWS 工作负载。出于安全目的,AWS 建议使用 IAM Roles Anywhere 生成临时凭证,而不是使用长期凭证(例如访问密钥)。

  1. 我已使用 AWS Certificate Manager 设置证书颁发机构
  2. 我创建了一个信任锚
  3. 我已创建个人资料

我现在准备通过我的信任锚信任的证书进行身份验证,并从角色获取临时凭据,但我不知道如何以编程方式执行此操作,而且我没有看到任何关于此主题的有用文档。

AWS 提供了一些命令行帮助工具,但我需要编写代码,而不是使用命令行应用程序。

我可能需要使用安全令牌服务,但我没有看到任何接受证书并返回凭据的方法。

AssumeRoleCommand
GetSessionTokenCommand
似乎是不错的候选者,但同样,我不确定如何在 Roles Everywhere 功能的上下文中使用它们。

amazon-web-services amazon-iam aws-sdk-nodejs aws-sts aws-roles
1个回答
0
投票

我没有看到任何接受证书并返回凭据的方法

这是因为

CreateSession
,即
AssumeRole
周围的 X.509 包装器实际上没有 SDK 支持:

CreateSession
不包含在任何 SDK 或客户端中,因为还没有对 CreateSession 签名过程的本机 SDK 或客户端支持。

您需要在 JS/TS 中手动实现签名过程,使用

rolesanywhere-credential-helper
的源代码作为支持。请注意,
RolesAnywhereClient
是一个控制平面包,实际上并不签署请求。

© www.soinside.com 2019 - 2024. All rights reserved.