GCP 中 AWS 安全组的替代方案?

Ish*_*hri 8 amazon-web-services google-cloud-platform aws-security-group google-cloud-run

Google Cloud Platform 中是否有 AWS 安全组的替代方案?

以下是我遇到的情况:

  1. 在 Cloud Run 中作为 docker 映像运行的基本 Node.js 服务器。
  2. GCP 的 Postgres SQL 数据库。
  3. GCP 上的 Redis 实例。

我想做的是创建一个“安全组”,这样我的 Postgres SQL DB 和 Redis 实例只能从我的 Node.js 服务器访问,而不能从其他地方访问。我不希望它们可以通过 IP 公开访问。

我们在 AWS 中所做的是,只有安全组中的服务部分才能相互访问。

我不太确定,但我想在 GCP 中我需要使用防火墙规则(根本不确定)。

如果我是正确的,有人可以指导我如何解决这个问题吗?如果我错了,有人可以建议正确的方法吗?

ams*_*msh 7

GCP 为其 VPC 提供了防火墙规则,其工作方式与 AWS 安全组类似。更多详情可在这找到。您可以将 PostgreSQL 数据库、Redis 实例和 Node.js 服务器放置在 GCP VPC 内。

  • 通过 DNS 使 Node.js 服务器可供公众使用。
  • 设置default-allow-internal规则,只有VPC内的服务可以互相访问(停止DB和Redis的公共访问)

作为替代方法,您也可以将所有三个服务器保持为公共,并且只允许 Node.js IP 地址访问 DB 和 Redis 服务器,但建议使用上述解决方案。


Ish*_*hri 0

感谢@amsh 解决问题。但是还有一些事情需要完成,所以我想如果将来有人需要的话,如果我在这里列出它们会更好:

  • VPC network为特定区域创建并添加子网(例如:us-central1)。
  • Serverless VPC Access从同一区域中创建的 VPC 网络部分创建 VPC 连接器。
  • 在部分Cloud Run中添加创建的 VPC 连接器Connection
  • 在与创建的VPC网络同一地域创建PostgreSQL和Redis实例。
  • Private IP这些实例的部分中,选择创建的 VPC 网络。这将为所创建的 VPC 网络区域中的各个实例创建一个私有 IP。
  • 在 Node.js 服务器中使用此私有 IP 连接到实例,一切顺利。

您可能面临的常见问题:

  • 创建 VPC 连接器时出错:确保 VPC 连接器的 IP 范围与 VPC 网络不重叠。

  • 不同区域:确保所有实例位于 VPC 网络的同一区域,否则它们将无法通过专用 IP 连接。

  • 避免更改防火墙规则:除非您需要它们以不同于平常的方式执行,否则不得更改防火墙规则。

  • 不同地域的实例:如果实例分布在不同地域,则使用VPC network peering来建立实例之间的连接。