【问题标题】:Alternative to AWS's Security groups in GCP?GCP 中 AWS 安全组的替代方案?
【发布时间】:2020-10-27 05:18:18
【问题描述】:

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 中我需要使用防火墙规则(完全不确定)。

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

【问题讨论】:

  • 如果熟悉 AWS,那么Google Cloud for AWS Professionals 有助于熟悉 GCP。通常大多数云都有共同的功能,如虚拟服务器、对象存储等,然后它们将彼此区分开来。

标签: amazon-web-services google-cloud-platform google-cloud-run aws-security-group


【解决方案1】:

GCP 的 VPC 具有与 AWS 安全组类似的防火墙规则。更多详细信息可以找到here。您可以将 PostgreSQL 数据库、Redis 实例和 Node.js 服务器放在 GCP VPC 中。

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

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

【讨论】:

  • 设置default-allow-internal 规则后,我将通过各自的公共IP从Node.js服务器访问PostgreSQL和Redis,对吧?
  • @IshaanOhri,从技术上讲,他们必须只分配一个私有 IP 地址,您将使用它。另一个更好的选择是使用他们的 DNS。但是,如果您的配置使公共 IP 地址可用,您也可以使用它。它只能在 VPC 内部访问。
【解决方案2】:

AWS 内部的安全组是附加实例的类似防火墙的组件。例如,您可以在实例级别拥有一个 SG,类似于在常规 Linux 上配置 IP 表。

另一方面,Google 防火墙规则更多是在网络级别。我想,对于“粒度”级别,我会说安全组可以替换为实例级粒度,因此您的替代方案是使用以下之一:

  • 防火墙
  • nftables
  • iptables

问题是在 AWS 中,您还可以将安全组附加到子网。因此,SG 连接到子网时,也有点类似于 google 防火墙,不过,安全组提供了更多的粒度,因为每个子网可以有不同的安全组,而在 GCP 中,每个网络都需要一个防火墙。在这个级别,保护应该来自子网中的防火墙。

【讨论】:

    【解决方案3】:

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

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

    您可能面临的常见问题:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多