跨多个应用程序共享数据库

时间:2017-02-19 22:01:19

标签: security flask flask-sqlalchemy

Web App#1在AWS上,包含用户订阅信息(例如,订阅处于活动状态),并允许用户创建帐户。

Web App#2支持VPN,理想情况下与Web App#1同步,因此用户可以使用相同的凭据访问服务,我们可以验证他们是否拥有有效订阅。我不担心VPN授权,我单独处理。这纯粹是为了访问Web App#2的资源。

这两个网络应用程序都是使用SQLAlchemy在Flask中编写的。如何通过互联网同步这些应用程序?

我认为Postgres正在监听任何连接可能不太理想。流量超过TLS / SSL吗?这是分享数据库的用途吗?

1 个答案:

答案 0 :(得分:0)

在上面的场景中,听起来只是让两个位置都可以访问数据库就可以了。将Postgres放在可供两者访问的单独VM上。

将对Postgres监听器的访问限制为仅来自您的应用IP。您可以通过AWS执行此操作。

启用对Postgres的身份验证 - 基于证书的身份验证声音,就像在您的情况下一样,也可以在TLS上运行。

分片是基于某些属性分割数据 - 例如,假设您有1,000,000个用户,每个用户都有一行"用户"表。你可以将它分成4个独立的数据库服务器,每个用户名为A-H的人都进入服务器#1,I-N进入服务器#2等。共享主要用于提高读/写性能。