为什么人们在服务器上使用 .env 文件?

7 django amazon-web-services amazon-elastic-beanstalk

为什么人们要把.env所有秘密存储在服务器中?如果有人破解它,不是可以.env像所有其他文件一样访问吗?谢谢!

Chr*_*ams 6

您是正确的,.env如果第三方获得了原始代码的访问权限,将环境机密存储在文件中会带来纯文本机密暴露给第三方的风险。

就像其他具有敏感材料的区域一样,有很多方法可以解决这个问题,通常人们可能会采用一种方法来使用秘密管理系统,该系统会替换.env通过经过验证的请求访问的文件中的任何秘密值。

AWS 支持一些可以执行此操作的官方服务:

  • Secrets Manager - 此服务是专门为此目的而构建的,您可以定义一个密钥并为其提供一个字符串或 JSON 值,然后使用 SDK 通过调用来检索该值。所有值均使用 KMS 密钥加密。
  • Systems Manager 参数存储- 与机密管理器类似,您提供密钥名称并为其指定值。它支持未加密和加密的值(使用SecureString类型)。

此外,还有其他服务(例如Hashicorp Vault)提供类似的功能。

对于环境配置,.env文件仍然是合适的,即启用此功能标志,但如果您想尝试减少应用程序的爆炸半径,那么将机密存储在纯文本文件之外将有助于降低这种风险。