从另一个 GCP 项目访问 Cloud SQL

Dee*_*rma 9 google-cloud-sql google-cloud-platform google-cloud-networking

我想从不同的 GCP 项目连接到 Cloud SQL。

Cloud SQL 位于 ProjectSQL 中,VPC 网络位于 ProjectSQL 项目中,名称为 sql_vpc

还有另一个项目 ProjectDataflow,它有一个 vpc dataflow_vpc。我想使用在 ProjectDataflow 项目中启动的 VM 从 ProjectSQL 连接到 cloudSQL

我尝试过的成功和失败的事情。

私人访问:

VPC 对等互连:

Enable Private IP access in Cloud with the vpc sql_vpc
Creating VPC peering between dataflow_vpc and sql_vpc
This solution does not work because you can not access the Peered Network.
https://cloud.google.com/sql/docs/mysql/private-ip
Status: FAILED
Run Code Online (Sandbox Code Playgroud)

共享网络

As per doc I can create the CloudSQL in shared VPC network, that says I 
have to create the CloudSQL in host project, and to access the Cloud 
SQL from  VM instance, it has be in the same network as of authorized 
private ip network of Cloud SQL
Status: NOT TRIED but looks to be Negative
Run Code Online (Sandbox Code Playgroud)

公共访问:

Create a Cloud NAT in ProjectDataflow with dataflow_vpc with manual IP
Use the Cloud NAT public ip to whitelist in CloudSQL instance
Now I can access the CloudSQL from project ProjectDataflow using CloudSQL Public IP
STATUS: Success
Run Code Online (Sandbox Code Playgroud)

请分享您从其他项目访问 Cloud SQL 的经验。是否有从另一个 gcp 项目连接云 SQL 的最佳实践?

bhi*_*ito 7

编辑:

较新的实例似乎默认启用了此选项,不再需要联系支持人员。但是,如果在完成所有过程后,设置仍然无法正常工作,则可能需要联系支持人员。

重要提示:如文档中所述,VPC 对等互连选项将不再起作用,更准确地说,请参阅注意事项主题。那么实现它的唯一可用选项是使用共享 VPC

按照文档将 Cloud SQL 与另一个 GCP 项目互连的过程非常简单。为了使其工作,您唯一需要考虑的是,您必须请求 Google Cloud Support 为运行 Cloud SQL 的 Cloud SQL 斑点伞实例启用自定义路由,否则您将无法能够在您的 GCP 项目中访问您的 Cloud SQL。

以下步骤对您有用:

- 为 Cloud SQL 实例配置 VPC

在您拥有 Cloud SQL 实例的项目中,使用您想要的 IP 地址范围创建一个 VPC 网络。为您的实例所在的 VPC 选择相同的地区。

- 为 GCP 项目配置 VPC

现在切换到您的 CloudDataflow 实例所在的项目并遵循相同的过程。创建 VPC 网络时要注意 IP 范围不会相互冲突。您可以使用以下工具检查 IP 地址范围是否冲突。还要考虑到两个 VPC 网络必须在同一区域中。

- 将两个项目的 VPC 与对等互连

创建两个 VPC 网络后,需要从两个项目配置 VPC 网络对等互连。在 Cloud SQL 实例端,配置对等互连,指定要连接的项目和 VPC 网络名称,并选择导出自定义路由的选项。这样,对等互连的另一部分(在本例中是您的 GCP 项目)将具有您的 Cloud SQL 实例的可见性。现在,从 GCP 项目端配置对等互连,指定要连接的 Cloud SQL 项目名称和 VPC 网络名称。与使用 Cloud SQL 对等互连的方式相同,我们必须设置对等互连以导入自定义路由,因为它将接收来自连接另一端的导出路由,在我们的示例中是您的 Cloud SQL 实例。

您可以在此处查看有关在任何 VPC 网络对等互连之间导入和导出路由的更多信息。

- 请求 Google Cloud 支持为您启用 Cloud SQL 的交换自定义路由

联系 Google Cloud 支持并要求他们为与您的实例关联的斑点伞 VPC 网络启用自定义路由交换,该网络是在创建 Cloud SQL 实例时自动创建的。

考虑到这最后一步非常重要,所有 SQL 项目都在伞形项目下运行,因此如果不请求 Google Cloud 支持为您的实例启用交换自定义路由,这将永远无法工作。

共享 VPC

对于共享 VPC,您唯一需要考虑的是,您需要在创建 Cloud SQL 实例后启用该选项,因为之后无法添加它。

您可以在以下链接中找到共享 VPC 的配置指南。