Sails.js在哪里存储安全凭据?

Sails.js在哪里存储安全凭据?,sails.js,configuration-files,Sails.js,Configuration Files,我将数据库连接的用户名和密码存储在 /config/connections.js 我应该在哪里存储更通用的东西,如AWS凭据 我想象着在某个文件中保存一个如下所示的对象 module.exports.aws = { key:'my key', secret: 'my token', bucket: 'my bucket' } 然后像这样使用它: req.file('image') .upload({ adapter:require('skipper-s3'), ke

我将数据库连接的用户名和密码存储在

/config/connections.js
我应该在哪里存储更通用的东西,如AWS凭据

我想象着在某个文件中保存一个如下所示的对象

module.exports.aws = {
 key:'my key',
 secret: 'my token',
 bucket: 'my bucket'
}
然后像这样使用它:

req.file('image')
  .upload({
    adapter:require('skipper-s3'),
    key:aws.key,
    secret:aws.secret,
    bucket:aws.bucket,
  }, function whenDone(err, uploadedFiles) {
  }

永远不要在源代码中存储凭据。使用环境变量:

{
  secret: process.env.MY_SECRET
}

看看npm包吧,它很棒,因为它允许您定义一个文件,以便在进行本地测试时从中加载配置,但对于生产,它可以从环境变量中加载配置,而无需任何代码更改

是的,如果您查看AWS EB,AWS也会告诉您这样做。然而,一些系统限制了可以使用的环境变量的数量。这背后的原因是什么?如果我有一个脚本,在运行sails之前在生产环境中设置环境变量,这算是“在源代码中”吗?如果是在源代码控制中,那就是源代码。顺便说一句,这不是特定于sailsjs的,这是公认的最佳实践。我喜欢刚才在node.js源代码中描述安全管理凭据的最佳实践而被否决。