使用AWS Node.JS SDK时是否需要缓存IAM角色凭据

使用AWS Node.JS SDK时是否需要缓存IAM角色凭据,node.js,amazon-web-services,amazon-ec2,amazon-s3,amazon-iam,Node.js,Amazon Web Services,Amazon Ec2,Amazon S3,Amazon Iam,我们在AWS VPC中使用基于角色的IAM凭据。这意味着您永远不会将密钥传递给AWS SDK的客户端 之前我们使用了PHPSDK。Amazon特别建议在PHP SDK中使用基于角色的身份验证时缓存凭据: 我现在正在使用S3客户端编写Node.JS应用程序。我想知道是否需要缓存凭据(根据PHP SDK),或者这是Node.JS SDK自动为我们做的事情 Node.JS SDK的文档没有特别提到缓存基于角色的凭据: 谢谢否,使用AWS Node.js SDK时不需要缓存IAM角色凭据 我相信在使

我们在AWS VPC中使用基于角色的IAM凭据。这意味着您永远不会将密钥传递给AWS SDK的客户端

之前我们使用了PHPSDK。Amazon特别建议在PHP SDK中使用基于角色的身份验证时缓存凭据:

我现在正在使用S3客户端编写Node.JS应用程序。我想知道是否需要缓存凭据(根据PHP SDK),或者这是Node.JS SDK自动为我们做的事情

Node.JS SDK的文档没有特别提到缓存基于角色的凭据:


谢谢

否,使用AWS Node.js SDK时不需要缓存IAM角色凭据

我相信在使用PHP时缓存凭证的建议与PHP使用的请求/CGI模型有关。如果没有缓存,每个请求的PHP进程必须调用EC2实例元数据服务来检索凭据。如果处理高负载,则不理想


有了Node.js,您就有了一个持续运行的节点进程,它可以持久保存凭据,因此只需调用EC2实例元数据服务一次即可检索初始凭据,然后在凭据自动旋转时(我相信每隔几个小时)定期续订凭据。

否,使用AWS Node.js SDK时,不需要缓存IAM角色凭据

我相信在使用PHP时缓存凭证的建议与PHP使用的请求/CGI模型有关。如果没有缓存,每个请求的PHP进程必须调用EC2实例元数据服务来检索凭据。如果处理高负载,则不理想


有了Node.js,您就有了一个持续运行的节点进程,它可以持久保存凭据,因此只需调用EC2实例元数据服务一次即可检索初始凭据,然后在凭据自动旋转时(我相信每隔几个小时)定期续订凭据。

否,使用AWS Node.js SDK时,不需要缓存IAM角色凭据

我相信在使用PHP时缓存凭证的建议与PHP使用的请求/CGI模型有关。如果没有缓存,每个请求的PHP进程必须调用EC2实例元数据服务来检索凭据。如果处理高负载,则不理想


有了Node.js,您就有了一个持续运行的节点进程,它可以持久保存凭据,因此只需调用EC2实例元数据服务一次即可检索初始凭据,然后在凭据自动旋转时(我相信每隔几个小时)定期续订凭据。

否,使用AWS Node.js SDK时,不需要缓存IAM角色凭据

我相信在使用PHP时缓存凭证的建议与PHP使用的请求/CGI模型有关。如果没有缓存,每个请求的PHP进程必须调用EC2实例元数据服务来检索凭据。如果处理高负载,则不理想


有了Node.js,您就有了一个持续运行的节点进程,它可以持久保存凭据,因此只需调用一次EC2实例元数据服务来检索初始凭据,然后在凭据自动旋转时(我相信每隔几个小时)定期续订凭据。

据我所知,除非您保留客户机对象,否则SDK将在再次实例化实例元数据服务时返回到实例元数据服务(除非您同时实例化一组客户机,在这种情况下,它们都使用相同的实例元数据请求event-odd)


i、 e.缓存您的Amazon客户端对象(但这不是PHP,因此您不需要磁盘缓存:)。

据我所知,除非您保留客户端对象,否则SDK将在再次实例化时返回实例元数据服务(除了同时实例化一组客户机的情况,在这种情况下,它们都使用相同的实例元数据请求event-odd)


i、 e.缓存您的Amazon客户端对象(但这不是PHP,因此您不需要磁盘缓存:)。

据我所知,除非您保留客户端对象,否则SDK将在再次实例化时返回实例元数据服务(除了同时实例化一组客户机的情况,在这种情况下,它们都使用相同的实例元数据请求event-odd)


i、 e.缓存您的Amazon客户端对象(但这不是PHP,因此您不需要磁盘缓存:)。

据我所知,除非您保留客户端对象,否则SDK将在再次实例化时返回实例元数据服务(除了同时实例化一组客户机的情况,在这种情况下,它们都使用相同的实例元数据请求event-odd)


i、 e.缓存Amazon客户端对象(但这不是PHP,所以不需要磁盘缓存:)。

Ahh非常有意义。谢谢你的解释。(或者更确切地说,我不认为这个答案涵盖了一切。我想这取决于你对“缓存”的理解。见下文)james.haggerty我相信这个答案是100%正确的。他所指的“缓存”是构建在AWS PHP SDK中的缓存,您可以将其传递给客户端。saintberry想知道在nodeapp中使用这一点是否有意义。我相信AWS SDK本身实现PHP缓存的原因是,在请求之间拥有相同的凭据是非常重要的。对于NodeJS来说,它相当简单——只需保留相同的客户端对象——但您仍然应该这样做(即“缓存”它自己)。是什么让你认为这是错误的?(我的意思是,你不应该在NodeJS应用程序中使用AWS PHP缓存,这显然是千真万确的…;))啊,这很有道理。谢谢你的解释