将AWS密钥保留在Javascript代码之外

时间:2018-11-21 15:20:50

标签: javascript reactjs aws-lambda aws-api-gateway secret-key

我有一个Web应用程序,其后端使用AWS Lambda和API网关(受IAM保护),前端使用React构建。我正在尝试找出最好的方法是将AWS Secret Key排除在生产Javascript代码之外,到目前为止,我发现除了混淆密钥之外,没有什么比这更好的了,但实际上并不能解决任何问题。

到目前为止,我正在使用apigClient并对访问密钥和秘密密钥进行硬编码。

任何帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:2)

AWS在其应用程序中具有用于环境变量的界面。看起来这些是docs for Lambda。您应该在该界面中放置任何凭据,然后就可以在Lambda函数中访问它们。在本地,您可以使用dot-env之类的npm并使用.env文件访问您的环境变量。或者,您可以只在命令行中添加它们。如果您要使用.env文件,则非常重要的是忽略.gitignore中的文件。

答案 1 :(得分:1)

如果有人检查了最终捆绑包的源代码,则您在JavaScript代码中包含的所有内容都将在浏览器中可读。

如果您想100%确保您的秘密密钥保持隐藏,则应在后端进行此身份验证。

但是,您可以通过将私钥设置为env变量来将其排除在回购之外。