【发布时间】:2020-07-31 05:43:03
【问题描述】:
您好:我确实在 AWS EC2 实例中部署了基于 Django 的应用程序。该应用程序通过在 Django 应用程序中编写的一组 API 访问托管在场所内的医院数据库以进行查询和更新。但是,由于安全原因,我们的 EC2 应用程序中不能有生产 IP、数据库用户 ID、数据库密码。这个问题有哪些可用的选项。可以考虑的一种选择是在本地环境的另一台机器上设置反向代理服务器,并通过它访问 prod 数据库。我想知道,
- 如果有其他更好的实践解决方案可用
- 指向 ReverseProxy 的示例配置的指针,该配置在代理中维护数据库 UserID、databasePwd 等并通过它运行 API。 我们仍在尝试设置基于 UBUNTU 的 Ngnx 服务器。但是,仍然不确定在哪里维护 DBUserID、DBPwd 等。 任何帮助或指导指针将不胜感激。谢谢
【问题讨论】:
-
您可以将凭据存储在 Systens 管理器参数存储机密中。 django 应用程序在您的 django index.php 文件中编写一些代码,以从参数存储中读取凭证并更新具有 db 凭证的配置文件。但是在这种方法中,任何可以访问 ec2 的人都可以在配置文件中看到明文密码。
-
检查这个。在此示例中,当 django 收到请求时,他们正在对 aws 系统管理器进行 sdk 调用并获取机密。密码不会存储到文件中。但它会为每个 http 请求查询系统管理员。 engineering.instawork.com/…
-
发布了一个答案,基本上您在 ec2 使用启动脚本启动时读取一次凭据,然后您可以将值存储为系统环境变量。然后 django 可以从环境变量中读取凭证。
标签: reverse-proxy