我们在AWS VPC中使用基于角色的IAM凭据。这意味着您永远不会将密钥传递给AWS SDK的客户端。
以前我们使用过PHP SDK。亚马逊特别建议在使用PHP SDK进行基于角色的身份验证时缓存凭据:
https://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html#caching-iam-role-credentials
我现在正在使用S3客户端编写Node.JS应用程序。我想知道是否需要缓存凭据(根据PHP SDK)或者这是Node.JS SDK自动为我们做的事情吗?
Node.JS SDK的文档没有特别提及有关基于缓存角色的凭据的任何内容:
由于
答案 0 :(得分:2)
不,您在使用AWS Node.js SDK时无需缓存IAM角色凭据。
我认为在使用PHP时缓存凭据的建议与PHP使用的请求/ CGI模型有关。在没有缓存的情况下,您的每个请求的PHP进程必须调用EC2实例元数据服务来检索凭据。如果处理高负荷,则不理想。
使用Node.js,您有一个持续运行的节点进程,它可以持久保存凭证,因此只需要调用一次EC2实例元数据服务来检索初始凭据,然后在自动轮换时定期更新凭据(我相信每隔几个小时)。
答案 1 :(得分:1)
据我所知,除非你保留客户端对象,否则当SDK再次实例化时,SDK将返回实例元数据服务(除非你同时实例化一堆客户端,在这种情况下,它们都使用相同的实例元数据请求事件 - 奇数)。
即。缓存您的Amazon客户端对象(但这不是PHP,因此您不需要磁盘缓存:)。