我们在AWS VPC中使用基于角色的IAM凭证。这意味着您永远不会向AWS SDK的客户端传递密钥。
以前我们使用PHP SDK。Amazon特别建议在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的文档没有特别提到任何关于缓存基于角色的凭据的事情:
http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html Credentials_from_IAM_Roles_for_EC2_Instances
谢谢
不需要,使用AWS Node.js SDK时不需要缓存IAM角色凭证。
我认为在使用PHP时缓存凭证的建议与PHP使用的请求/CGI模型有关。如果没有缓存,每个请求的PHP进程将不得不调用EC2实例元数据服务来检索凭据。如果你在处理高负载,这是不理想的。
使用node .js,您有一个不断运行的节点进程,它可以持久化凭据,因此只需要调用EC2实例元数据服务一次来检索初始凭据,然后在自动旋转时定期更新凭据(我相信每隔几个小时)。
据我所知,除非您保留客户端对象,否则SDK将在再次实例化时返回实例元数据服务(除非在您同时实例化一堆客户端的情况下,在这种情况下,它们都使用相同的实例元数据请求事件-奇数)。
。缓存您的Amazon客户端对象(但这不是PHP,所以您不需要磁盘缓存:))。