如何在没有静态 IP 的情况下安全地访问生产数据库

如何在没有静态 IP 的情况下安全地访问生产数据库

我在 AWS EC2 上运行一个小规模应用程序,并且其上安装了 PostgreSQL。

我想远程访问这个生产数据库,但也想保证它的安全,而且我不确定我所做的是否足够。

在处理公司项目时,我只是将公司的静态 IP 列入白名单并阻止所有其他 IP,但在这种情况下,我无法使用静态 IP,而且我的 IP 经常更改。

到目前为止,我已经

  • 更改了 DB 的默认端口
  • 设置 cloudflare(向我无法访问该服务的国家/地区显示挑战)
  • 使用随机密码生成器创建密码

但我觉得我可以做得更多,而且因为我的数据库包含一些敏感的个人信息,我觉得我应该做得更多。

我还能做什么来进一步保护我的数据库?

答案1

通过 SSH 隧道连接 Postgresql

ssh -L 5432:/var/run/postgresql/.s.PGSQL.5432

并本地连接到127.0.0.1:

psql -h 127.0.0.1

在服务器上,您可以禁用 postgresql 的所有监听端口,只保留 ssh 端口打开。

还要确保 SSH 不能用于密码访问,只能用于 ssh 密钥访问。

答案2

确保安全的最佳方法是使用 VPN 客户端。

在 VPN 客户端配置文件中,您可以选择可以打开的端口。

这样,服务器就永远不会出现在互联网上,并且您到该服务器的流量在隧道内被加密。

相关内容