【问题标题】:Google Cloud - Unable to access private CloudSQL database in one VPC network from another VPC networkGoogle Cloud - 无法从另一个 VPC 网络访问一个 VPC 网络中的私有 CloudSQL 数据库
【发布时间】:2020-05-02 13:31:21
【问题描述】:

我们的设置包括 - 一个主 VPC,我们有计算引擎和使用私有 IP 创建的 Postgres 数据库。让我们将其称为main-network, - Vault 部署在它自己的 VPC 中,可通过负载均衡器访问(根据最佳实践)。我们将其称为vault-network

main-network 内,计算实例能够访问使用私有IP 作为创建时使用main-network 作为父网络创建的数据库的数据库。查看各种 VPC 详细信息,似乎创建过程会自动创建私有服务访问,如 in the docs. 所述。

问题 - 对于 Vault database secret-engine,Vault 需要能够访问数据库以动态生成机密。 我尝试在main-networkvault-network 之间创建VPC 网络对等互连,并验证(通过netcat)我可以从vault-network 中的机器成功访问main-network 中的机器。

但是,我无法从 vault-network 中的节点访问数据库实例。

是否可以与对等 vpc 网络共享对私有服务的访问?

我不想公开数据库,除非这是唯一的方法。

【问题讨论】:

  • VPC 对等互连不可传递。这意味着您可以从 VPC A 连接到 VPC B。您无法从 VPC A 到 VPC B 连接到 Cloud SQL 所在的 VPC C。您需要将 Cloud SQL 与 VPC A 对等。
  • 对等 vault-network 到 CloudSql 网络是我尝试的第一件事。不幸的是,它不起作用,因为没有选项可以在任何地方选择特定的 cloudSql 网络。如果您可以添加步骤,将不胜感激
  • 我解释了问题所在,以便您了解原因。查看纪尧姆的回答。

标签: google-cloud-platform google-cloud-sql vpc hashicorp-vault


【解决方案1】:

由于您的 Cloud SQL 不在您的 VPC 中,但在 Cloud SQL 和您的 VPC 之间执行了 VPC 对等互连,因此您无法通过对等互连访问另一个 VPC 网络。正如约翰所说,它被命名为传递性并在VPC peering restrictions中描述

只有直接对等的网络才能进行通信。不支持传递对等互连。换言之,如果 VPC 网络 N1 与 N2 和 N3 对等,但 N2 和 N3 没有直接连接,则 VPC 网络 N2 无法通过 VPC Network Peering 与 VPC 网络 N3 通信。

遗憾的是,您无法按照 John 的建议在 Cloud SQL 和另一个项目的 VPC 网络(您的保管库网络)之间创建对等互连。我只看到 2 个解决方案来解决这个问题

  • 设置仅转发流量的通槽 VM。微型 VM 就足够了,但您必须维护它,以确保高可用性,(...)
  • 设置一个shared VPC,里面有你的2个项目。将您的 Cloud SQL 私有 IP 设置到共享 VPC 子网中。

【讨论】:

  • 我想我从概念上理解你通过设置通过 VM 的意思,但我不确定推进它的最佳方式是什么。如果你有这方面的经验,你能分享一下你是怎么做到的吗?将保险库网络设置到共享 VPC 中是不可取的,因为它会使保险库节点直接可访问,并且从一开始就违背了创建单独网络的目的。
【解决方案2】:

我联系了我们帐户的 Google 支持并询问了他们这个问题,他们确认不可能有可传递的 VPC 对等

VPC 对等是不可传递的,这种情况在 VPC 网络之间使用 VPC 对等是不可能的:

Cloud SQL VPC “main-network” VPC “vault-network”。

创建共享 VPC 与创建单独网络的初衷背道而驰,因为它会使保管库节点在共享 VPC 中直接访问。

Google 的人建议创建一个 VPN:

作为一种解决方法,您可以在 VPC 网络“主网络”和“保险库网络”之间创建一个 VPN:

Cloud SQL VPC “主网络” VPC “vault-network”。

我需要一些时间来考虑我们是否要走这条路。

目前,我已在数据库实例的 settings.ip_configuration.authorized_networks 配置中将保管库集群的 NAT IP 列入白名单,以授予对保管库网络的访问权限。 这样做的缺点是数据库现在有一个公共 IP,这不一定是坏的,因为防火墙阻止了对它的公共访问。

感谢大家的建议。

【讨论】:

    猜你喜欢
    • 2020-12-06
    • 2017-03-22
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    相关资源
    最近更新 更多