配置网络连接的安全性

本页面介绍使用方网络管理员如何管理使用网络连接的 VPC 网络中的安全性。

虽然 Private Service Connect 接口由提供方组织创建和管理,但它们位于使用方 VPC 网络中。为保护使用方端的安全,我们建议使用基于使用方 VPC 网络中的 IP 地址范围的防火墙规则。这种方法可让使用方控制来自 Private Service Connect 接口的流量,而无需依赖提供方的网络标记

虽然支持将网络标记与防火墙规则搭配使用,但我们不建议这样做,因为使用方无法控制这些标记。

限制提供方到使用方的入站流量

注意看图 1 中的示例配置,其中使用方希望向提供方授予对 producer-ingress-subnet 的访问权限,并阻止提供方访问 restricted-subnet

图 1. 防火墙规则可确保来自提供方子网的流量只能到达 attachment-subnetproducer-ingress-subnet 中的虚拟机。

以下防火墙规则允许受限的提供方到使用方的入站流量:

  1. 低优先级规则会拒绝来自网络连接子网 attachment-subnet 的 IP 地址范围的所有出站流量。

    gcloud compute firewall-rules create deny-all-egress \
        --network=consumer-vpc \
        --action=DENY \
        --rules=ALL \
        --direction=EGRESS \
        --priority=65534 \
        --source-ranges="10.0.1.48/28" \
        --destination-ranges="0.0.0.0/0"
    
  2. 优先级较高的规则允许从 attachment-subnet 的 IP 地址范围到 producer-ingress-subnet 地址范围内的目的地的出站流量。

    gcloud compute firewall-rules create allow-limited-egress \
        --network=consumer-vpc \
        --action=ALLOW \
        --rules=ALL \
        --direction=EGRESS \
        --priority=1000 \
        --source-ranges="10.0.1.48/28" \
        --destination-ranges="10.10.2.0/24"
    
  3. 针对来自 attachment-subnet 的流量,允许入站流量规则会覆盖隐式拒绝入站流量规则。

    gcloud compute firewall-rules create allow-ingress \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=INGRESS \
    --priority=1000 \
    --source-ranges="10.0.1.48/28"
    

允许使用方到提供方的出站流量

如果您希望允许使用方网络向提供方网络发起流量,则可以使用入站流量防火墙规则。

注意看图 2 中的示例配置,其中使用方希望允许 subnet-1 通过 Private Service Connect 连接访问提供方网络。

图 2. 允许入站流量防火墙规则允许 subnet-1 通过 Private Service Connect 连接访问提供方网络,而 subnet-2 会被隐式拒绝入站流量规则阻止。

以下防火墙规则可确保只有 subnet-1 可以通过 Private Service Connect 连接访问提供方网络:

gcloud compute firewall-rules create vm-subnet-allow-ingress \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=INGRESS \
    --priority=1000 \
    --source-ranges="10.10.2.0/24" \
    --destination-ranges="10.0.1.48/28"

配置提供方到提供方的安全性

在提供方应用需要访问其他提供方应用的情况下,您可以使用 VPC 防火墙规则确保安全性。

设想这样一个场景:使用方使用两个不同的第三方代管式服务,这些服务托管在不同的 VPC 网络中。一个服务是数据库,另一个服务提供分析。分析服务必须连接到数据库服务才能分析其数据。一种方法是让该服务创建直接连接。但是,如果直接连接这两个第三方服务,则使用方将无法控制和查看其数据。

一种更安全的方法是使用 Private Service Connect 接口、Private Service Connect 端点VPC 防火墙规则,如图 3 所示。

图 3.从分析应用到数据库应用的流量经过使用方 VPC 网络。VPC 防火墙规则根据来源 IP 地址范围限制出站流量。

在此方法中,使用方网络通过一个子网中的端点连接到数据库应用,并通过另一个子网中的网络连接连接到分析应用。来自分析应用的流量通过 Private Service Connect 接口和网络连接,流经使用方网络,然后通过 endpoint-subnet 中的端点出站,即可到达数据库应用。

在使用方 VPC 网络中,VPC 防火墙规则拒绝来自 attachment-subnet 的所有出站流量。另一个具有更高优先级的防火墙规则允许从 attachment-subnetconsumer-private-subnet 到端点的出站流量。因此,来自分析应用的流量可以到达数据库应用的 VPC 网络,并且此流量必须流经使用方的端点。

以下防火墙规则创建图 4 中所述的配置。

  1. 防火墙规则会阻止来自 attachment-subnet 的所有出站流量:

    gcloud compute firewall-rules create consumer-deny-all-egress \
        --network=consumer-vpc \
        --action=DENY \
        --rules=all \
        --direction=EGRESS \
        --priority=65534 \
        --source-ranges="10.0.1.48/28" \
        --destination-ranges="0.0.0.0/0"
    
  2. 防火墙规则允许端口 80 上的出站 TCP 流量从 attachment-subnetconsumer-private-subnet 流向端点:

    gcloud compute firewall-rules create consumer-allow-80-egress \
        --network=intf-consumer-vpc \
        --allow=tcp:80 \
        --direction=EGRESS \
        --source-ranges="10.0.1.48/28,10.10.2.0/24" \
        --destination-ranges="10.0.1.66/32" \
        --priority=1000