我或用户的 VPC 和子网?

VPC and Subnets for me or user?

我正在尝试将我的移动应用程序连接到 AWS RDS。我希望我的用户能够从任何地方访问数据库,并且我想在 SQL Workbench 中查看我的数据库。 VPC 和子网是否允许我访问数据库或我的用户?

出于安全原因和适当的移动应用架构,我不会让移动客户端直接访问数据库。只需一台受损的机器,您的数据就会消失、损坏或被盗。

  1. 设置一个 API 移动客户端可以请求数据。
  2. 仅授予 API 数据库访问权限。
  3. 让移动客户端使用 Incognito 之类的东西来访问资源。

Here is a reference architecture from AWS for a mobile web app.

Also a paper on how to create a backend for a mobile application

为了安全地连接到数据库,我会使用软件 VPN,只允许您的 IP 连接它,然后只允许从该 VPN 的私有 IP 连接到数据库。 VPC 设计考虑 here . I personally use OpenVPN,它对 2 个并发用户免费减去 ec2 时间。

就 VPC 子网设计而言,数据库实例应始终放置在私有子网中,api in public 子网使用 https 公开。 AWS cert manager 可免费与 ELB/ALB 一起使用。

根据 strongjz 的回答,我强烈建议您将数据库放在私有子网中,并防止任何来自 Internet 的直接连接。

要从 SQL Workbench 连接到它,您可以设置堡垒服务器。这是一个充当外部互联网和您的私有子网之间的中间人的服务器。关于如何设置一个很好的教程 here。他们正在连接到 Redshift,但是连接到 RDS 的过程完全相同。

为了帮助设计子网 IP 范围,VPC Designer 是设计不同子网的好工具。

完全公开,我是 VPC Designer 的创造者。