使用 API 调用获取我的 AWS 凭证



我有一个节点应用程序,它侦听 RabbitMQ 队列上的消息,对于它收到的每条消息,它会启动一个新的独立节点进程来处理消息的内容。

第二个按需启动的节点应用程序与 S3 一起执行一些工作,从盒子的 IAM 角色中获取其凭证。

事实证明,我似乎遇到了节点 AWS 开发工具包通过 EC2 元数据服务检索 IAM 角色的错误。 基本上,在负载下,对元数据服务的 http 调用超时 (https://github.com/aws/aws-sdk-js/issues/692)。

因此,作为一种解决方法,我想知道父节点进程是否可以以某种方式使用某些 API 调用或其他技巧检索 AWS 凭证,并在命令行上将它们传递给子节点应用程序?

这意味着父应用只需调用一次元数据服务,从而减少其负载。

可能以任何方式?

让主节点应用从元数据服务检索凭据,将其本地缓存在内存中,在调用子进程时根据需要传递凭据,并让主节点应用在缓存凭据过期之前刷新它们。

您可以直接从元数据服务检索访问密钥 ID、秘密访问密钥、会话令牌和过期时间。例如:curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-xyz将产生:

{
  "Code" : "Success",
  "LastUpdated" : "2016-01-15T16:20:09Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "xxx",
  "SecretAccessKey" : "xxx",
  "Token" : "xxx",
  "Expiration" : "2016-01-15T23:00:11Z"
}

相关内容

  • 没有找到相关文章

最新更新