【问题标题】:Include sensitive environment variables to AWS EB Django app将敏感环境变量包括到 AWS EB Django 应用程序
【发布时间】:2020-09-18 20:54:50
【问题描述】:

我正在将一个 django 应用程序部署到 AWS Elastic Beanstalk,最初我在 .ebextensions/django.config 中定义我的环境变量

其中一些变量是敏感的,我不想将它们推送到 Git,所以我想将这些变量封装在一个不会被推送到 Git 的文件中(例如:.env)。

A 计划:

一种在我的配置文件中包含 .env 的方法,但我没有找到一种方法来实现它,应该是这样的:

option_settings:
  aws:elasticbeanstalk:application:environment:
    include .env
  aws:elasticbeanstalk:container:python:
    WSGIPath: mydjangoapp.wsgi:application

缺点:

  • 环境变量在 Elastic Beanstalk > Environments > my-environment > Configuration > Environment properties 的 AWS 控制台中以纯文本形式显示,尽管我知道只有拥有权限的授权 AWS 用户才能读取它们。

优点:

  • 能够仅直接从 AWS 控制台更新环境变量,而无需进行新的部署。

B 计划:

与计划 A 几乎相同,但在配置文件中不包含 .env 文件。是使用eb setenv来设置敏感环境,但是应该是一个一个显式的输入,而不是从外部文件中输入,所以很多的话会很头疼

C 计划:

从我的配置文件中完全删除敏感变量并从我的 django 应用程序本身加载 .env 文件。

缺点:

  • 如果我想更新这些变量中的任何一个,我必须部署我的应用程序的新版本。
  • 虽然.env文件不会推送到Git,可以在开发者内部共享,但是应该和部署包一起推送,会出现在应用的ec2实例目录中。

优点:

  • 即使在 AWS 控制台中也能隐藏敏感信息

问题:

【问题讨论】:

    标签: django amazon-web-services amazon-ec2 amazon-elastic-beanstalk


    【解决方案1】:

    关于计划 B - this answer 展示了一种将 .env 中的所有变量转储到 eb setenv ... command 的好方法!

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 2020-11-26
      • 2020-06-02
      • 2021-02-26
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      相关资源
      最近更新 更多