将 Secure Web Proxy 发布为 Private Service Connect 服务

如需集中管理多个 VPC 网络中的 Secure Web Proxy 部署,您可以通过 Private Service Connect 服务连接提供 Secure Web Proxy。

使用 Private Service Connect 部署 Secure Web Proxy 涉及以下步骤:

  1. 创建安全 Web 代理政策规则
  2. 创建使用您的政策的安全 Web 代理实例。
  3. 创建服务连接,以将 Secure Web Proxy 实例发布为 Private Service Connect 服务。
  4. 在需要连接到安全 Web 代理的每个 VPC 网络中创建 Private Service Connect 使用方端点。
  5. 将工作负载的出站流量指向区域内的集中式 Secure Web Proxy 实例。
以 Private Service Connect 服务连接模式部署 Secure Web Proxy。
将安全 Web 代理发布为 Private Service Connect 服务,可让您集中管理多个 VPC 网络中工作负载的出站流量。 (点击可放大。)

准备工作

在完成本页面中的步骤之前,请先完成初始设置步骤

创建和配置安全 Web 代理实例

本指南介绍了如何创建安全 Web 代理政策和按会话匹配流量的规则。

如需了解如何选择性地配置 TLS 检查,请参阅启用 TLS 检查

如需了解如何选择性地配置应用级匹配,请参阅创建和部署 Secure Web Proxy 实例

创建安全 Web 代理政策

控制台

  1. 在 Google Cloud 控制台中,前往 SWP 政策页面。

    前往“SWP 政策”页面

  2. 点击 创建政策

  3. 输入您要创建的政策的名称,例如 myswppolicy

  4. 输入政策说明。

  5. 区域列表中,选择要在其中创建 Web 代理政策的区域。

  6. 点击创建

Cloud Shell

  1. 创建 policy.yaml 文件。

    description: basic Secure Web Proxy policy
    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    

    替换以下内容:

    • PROJECT_ID:您的项目的 ID
    • REGION:政策的区域
  2. 基于 policy.yaml 创建安全 Web 代理政策。

    gcloud network-security gateway-security-policies import policy1 \
        --source=policy.yaml \
        --location=REGION
    

向政策添加安全 Web 代理规则

配置安全 Web 代理规则,以允许来自每个工作负载的出站流量。

本部分介绍了如何创建规则,以允许来自由 Resource Manager 标记或服务账号标识的工作负载的流量。如需了解以其他方式匹配流量,请参阅 CEL 匹配器语言参考文档

控制台

  1. 在 Google Cloud 控制台中,前往 SWP 政策页面。

    前往“SWP 政策”页面

  2. 点击您的政策名称。

  3. 如需添加规则以允许工作负载访问互联网,请执行以下操作:

    1. 点击 添加规则
    2. 输入优先级。规则按照从最高到最低的优先级进行评估,其中 0 是最高优先级。
    3. 输入名称。
    4. 请输入说明
    5. 输入状态。
    6. 对于操作,请选择允许
    7. 点击状态,然后选择已启用
    8. 会话匹配部分,指定会话匹配条件

      • 例如,如需允许来自具有 Resource Manager 标记值 ID tagValues/123456 的工作负载的流量访问 google.com,请输入以下内容:

        source.matchTag('tagValues/123456') && host() == 'google.com'

      • 如需允许使用服务账号 my-service-account@my-project.iam.gserviceaccount.com 的工作负载访问 google.com,请输入以下内容:

        source.matchServiceAccount('my-service-account@my-project.iam.gserviceaccount.com') && host() == 'google.com'

    9. 点击创建

Cloud Shell

对于要添加的每条规则,请执行以下操作:

  1. 创建一个 rule.yaml 文件,并指定会话匹配条件

    • 如需允许流量从由 Resource Manager 标记值 ID 标识的工作负载流向特定网域,请创建以下文件:

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on tag
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'
      

      替换以下内容:

      • PROJECT_ID:您的项目的 ID
      • REGION:您的政策的区域
      • RULE_NAME:规则的名称
      • PRIORITY:规则的优先级 - 规则按照从最高到最低的优先级进行评估,其中 0 是最高优先级
      • TAG_VALUE_ID:要允许流量的工作负载的标记值 ID
      • DOMAIN_NAME:允许流量流向的域名
    • 如需允许流量从使用服务账号的工作负载流向特定网域,请创建以下文件:

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on service account
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'
      

      SERVICE_ACCOUNT 替换为服务账号的名称。

  2. 如需使用您在 rule.yaml 中定义的规则更新政策,请使用以下命令:

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=rule.yaml \
       --location=REGION \
       --gateway-security-policy=policy1
    

部署安全 Web 代理实例

在您要用于出站流量的 Virtual Private Cloud (VPC) 网络中,以显式路由模式部署 Secure Web Proxy 实例。创建实例时,请将其与您在前面步骤中创建的政策和规则相关联。

通过 Private Service Connect 服务连接发布安全 Web 代理不支持下一个跃点路由模式。

如需了解如何配置实例,请参阅设置 Web 代理。您目前无需完成该页面上的其他步骤。

在 Hub-Spoke 模型中将 Secure Web Proxy 部署为 Private Service Connect 服务

本部分介绍了如何使用枢纽辐射型模型将安全 Web 代理部署为 Private Service Connect 服务,以集中管理出站流量。

将 Secure Web Proxy 发布为 Private Service Connect 服务

如需将 Secure Web Proxy 发布为服务,请创建 Private Service Connect 子网和服务连接。子网和服务连接必须与访问服务连接的 Private Service Connect 端点位于同一区域。

为 Private Service Connect 创建子网

如需为 Private Service Connect 创建子网,请执行以下操作。

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击某个 VPC 网络的名称以显示其 VPC 网络详情页面。

  3. 点击子网

  4. 点击添加子网。在显示的面板中,执行以下操作:

    1. 提供名称
    2. 选择区域
    3. 用途部分中,选择 Private Service Connect
    4. 对于 IP 堆栈类型,请选择 IPv4(单栈)IPv4 和 IPv6(双栈)
    5. 输入 IPv4 范围。例如 10.10.10.0/24
    6. 如果您要创建双栈子网,请将 IPv6 访问类型设置为内部
    7. 点击 Add(添加)。

Cloud Shell

执行下列其中一项操作:

  • 如需创建仅 IPv4 的 Private Service Connect 子网,请执行以下操作:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • 如需创建双栈 Private Service Connect 子网,请执行以下操作:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

替换以下内容:

  • SUBNET_NAME:要分配给子网的名称。

  • NETWORK_NAME:用于新子网的 VPC 的名称。

  • REGION:新子网的区域。此区域必须与您要发布服务的区域相同。

  • SUBNET_RANGE:要用于子网的 IPv4 地址范围,例如 10.10.10.0/24

创建服务连接

如需在中央(枢纽)VPC 网络中将安全 Web 代理发布为服务连接,请执行以下操作。

本部分介绍了如何创建自动接受所有连接的服务附件。如需了解明确批准或其他配置选项,请参阅发布经过明确批准的服务

控制台

  1. 在 Google Cloud 控制台中,前往 Private Service Connect 页面。

    转到 Private Service Connect

  2. 点击已发布服务标签页。

  3. 点击发布服务

  4. 目标详情部分中,选择 Secure Web Proxy

  5. 选择要发布的 Secure Web Proxy 实例。“网络”和“区域”字段会填充所选安全 Web 代理实例的详细信息。

  6. 对于服务名称,输入服务连接的名称。

  7. 为服务选择一个或多个 Private Service Connect 子网。相关列表会填充来自所选安全 Web 代理实例的 VPC 网络的子网。

  8. 连接偏好设置部分中,选择自动接受所有连接

  9. 点击添加服务

Cloud Shell

使用 gcloud compute service-attachments create 命令

gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
    --target-service=SWP_INSTANCE_URI \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=NAT_SUBNET_NAME \
    --region=REGION \
    --project=PROJECT \

替换以下内容:

  • SERVICE_ATTACHMENT_NAME:服务连接的名称
  • SWP_INSTANCE_URI:Secure Web Proxy 实例的 URI,格式如下://networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAME
  • NAT_SUBNET_NAME:Private Service Connect 子网的名称
  • REGION:安全 Web 代理部署的区域
  • PROJECT:安全 Web 代理部署的项目

创建端点

在需要通过集中式安全 Web 代理实例发送出站流量的每个 VPC 网络和区域中创建一个端点。针对需要创建的每个端点重复以下步骤。

控制台

  1. 在 Google Cloud 控制台中,前往 Private Service Connect 页面。

    转到 Private Service Connect

  2. 点击已连接的端点标签页。

  3. 点击连接端点

  4. 对于目标,选择已发布的服务

  5. 对于目标服务,输入要连接到的服务连接 URI。

    服务连接 URI 的格式为:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. 对于端点名称,输入要用于端点的名称。

  7. 为端点选择网络

  8. 为端点选择子网

  9. 为端点选择 IP 地址。如果您需要新的 IP 地址,可以创建一个:

    1. 点击 IP 地址下拉菜单,然后选择创建 IP 地址
    2. 为 IP 地址输入名称和可选的描述
    3. 选择 IP 版本
    4. 如果您要创建 IPv4 地址,请选择自动分配让我选择

      如果您选择了让我选择,请输入您要使用的自定义 IP 地址

    5. 点击预留

  10. 点击添加端点

Cloud Shell

  1. 预留要分配给该端点的内部 IP 地址。

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

    请替换以下内容:

    • ADDRESS_NAME:分配给预留 IP 地址的名称。

    • REGION:端点 IP 地址所在的区域。此区域必须与服务提供方的服务连接所在区域相同。

    • SUBNET:端点 IP 地址的子网名称。

    • IP_VERSION:IP 地址的 IP 版本,可以是 IPV4IPV6。默认为 IPV4。如需指定 IPV6,IP 地址必须连接到具有内部 IPv6 地址范围的子网

  2. 创建转发规则,以将该端点连接到服务提供方的服务连接。

    gcloud compute forwarding-rules create ENDPOINT_NAME \
       --region=REGION \
       --network=NETWORK_NAME \
       --address=ADDRESS_NAME \
       --target-service-attachment=SERVICE_ATTACHMENT
    

    请替换以下内容:

    • ENDPOINT_NAME:分配给端点的名称。

    • REGION:端点所在区域。此区域必须与服务提供方的服务连接所在区域相同。

    • NETWORK_NAME:端点的 VPC 网络的名称。

    • ADDRESS_NAME:预留地址的名称。

    • SERVICE_ATTACHMENT:服务提供方的服务连接的 URI。例如:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

将工作负载指向 Private Service Connect 端点

配置代理环境变量,以便每个工作负载都使用 Private Service Connect 端点的 IP 地址来处理出站流量。

例如,对于 Linux 或 macOS 环境中的工作负载,您可以使用命令行临时配置 HTTP_PROXYHTTPS_PROXY 环境变量:

export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"

替换以下内容:

  • ENDPOINT_IP_ADDRESS:端点的内部 IP 地址
  • HTTP_PORT:用于接收 HTTP 流量的端口
  • HTTPS_PORT:用于接收 HTTPS 流量的端口

如需了解如何在工作负载的环境中永久设置代理变量,请参阅操作系统的文档。

后续步骤