【问题标题】:how to secure connection to google database using public ip (0.0.0.0)?如何使用公共 IP(0.0.0.0)保护与谷歌数据库的连接?
【发布时间】:2019-06-27 22:20:44
【问题描述】:

我创建了一个软件,在该软件中我使用公共 IP 与谷歌数据库连接,但随着网络的变化,系统的公共 IP 也会发生变化。因此,为了方便起见,我使用了 IP 0.0.0.0,但它并不安全,但我不知道任何其他选项,因为我是新手。那么有什么方法可以保护它。

【问题讨论】:

  • 也许你可以为你的谷歌数据库获取静态 IP,它不会改变?另一种方法是,例如,使用某种发现服务器,它将在每次请求时返回数据库的实际 IP。这不是一个好的解决方案,但它可以在您无法使用静态 IP 的情况下工作

标签: python mysql google-cloud-platform


【解决方案1】:

有多种方法可以设置与 Cloud SQL 实例的安全连接。

  1. 使用 SSL 证书连接到实例并启用“仅允许 SSL 连接”。
  2. 使用私有 IP。我了解您创建的应用程序不是托管在 GCP 中,而是托管在其他地方,因此,一个不错的选择是:

    2.1。在您的 CSQL 实例中启用私有 IP 功能

    2.2。在您的项目(让我们将此项目称为“项目 A”)和您的 CSQL 所在的租户项目(该项目的名称将类似于“speckle-umbrella-[pg] -xx”JFYI)。请注意,此功能处于测试阶段。

    2.3。要求我们的技术支持团队在刚刚创建的对等互连上启用“导出自定义路由”,但这次是在我们这边(在已经提到的“speckle-umbrella-[pg]-xx”项目中)。如果您没有支持包,您可以在此 link 之后打开一个私人问题跟踪器,指定我的姓名、您的项目 ID 和您想要启用此功能的 CSQL 实例。不用担心,您将在那里打开的问题跟踪器仅对 Google 员工和您可见。请记住,在那里打开问题跟踪器最多可能需要 90 天才能得到答案,但我会监控这篇文章。

    2.4。然后,我假设您的应用未在 GCP 中运行,您必须设置 VPN tunnelCloud interconnect,才能将您的本地网络连接到 Google Cloud。

在此之后,您将能够以安全的方式从您的应用连接到您的 CSQL 实例。

  1. 如果您想使用私有 IP 并且您的应用托管在 GCP 中,如果您的应用和 CSQL 都位于同一区域并使用同一 VPC(如果您使用无服务器选项),则可以直接连接到您的 CSQL 实例例如 Cloud 函数或 Google App Engine Standard,您可以使用 Serverless VPC access)。但是如果您的应用托管在 GCP 中,但在不同的项目中,您可以按照步骤 2.1、2.2 和 2.3,然后,在您的应用所在的项目之间创建一个 VPC 对等互连(我们将此项目称为“项目 B”)以及您关联 CSQL 实例的项目(“项目 A”)。对于“项目 A”,您必须在这个新的 VPC 对等互连中启用“导出自定义路由”,对于“项目 B”,您必须启用“导入自定义路由”。这样做,您的应用(托管在“项目 B”中)之间的连接将从项目 B 到项目 A,从项目 A 到 speckle-umbrella-[pg]-xx,直到到达您的 Cloud SQL 实例。

您必须处理自定义路由的原因是因为前一段时间,VPC 对等互连无法传播路由,但现在完全可以。

【讨论】:

  • 感谢您帮助我,但如果您拒绝回答,我还有一个愚蠢的问题,我将按照上面提供的步骤进行操作。如果我只是为root设置密码怎么办?这将帮助我避免不必要的数据库访问
  • @Krypton_H4x0r 好吧,您应该始终为 root 用户(以及数据库中的所有用户)设置一个强密码,但从我的角度来看,如果您想这样做,这还不够有一个安全的连接,请按照上述步骤。
  • @Krypton_H4x0r - 除非您还在连接上启用了 SSL,否则您的登录名和密码将以明文形式发送。使用 SQL 代理。
猜你喜欢
  • 2019-12-08
  • 2012-01-12
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
相关资源
最近更新 更多