部署安全 Web 代理实例

注意:本页介绍了如何将安全 Web 代理部署为显式代理。或者,您也可以将安全 Web 代理部署为 Private Service Connect 服务附件下一个跃点

本快速入门介绍了如何部署和测试安全 Web 代理实例。

准备工作

  1. 完成初始设置步骤

  2. 如需运行此页面中的命令,请在以下开发环境之一中设置 Google Cloud CLI:

    Cloud Shell

    如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell:

    Cloud Shell 会话会在本页末尾启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。

    本地 shell

    如需使用本地开发环境,请按照以下步骤操作:

    1. 安装 gcloud CLI
    2. 初始化 gcloud CLI
  3. 创建或选择 Google Cloud 项目。

    控制台

    在 Google Cloud 控制台的“项目选择器”页面上,选择或创建 Google Cloud 项目

    转到“项目选择器”

    Cloud Shell

    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID
      

      PROJECT_ID 替换为所需的项目 ID。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID
      
  4. 创建 Linux 虚拟机 (VM) 实例:

    gcloud compute instances create swp-test-vm \
        --subnet=default \
        --zone=ZONE \
        --image-project=debian-cloud \
        --image-family=debian-11
    

    Compute Engine 向创建虚拟机的用户授予 Compute Instance Admin 角色 (roles/compute.instanceAdmin)。Compute Engine 还会将该用户添加到 sudo 群组。

  5. 创建防火墙规则:

    gcloud compute firewall-rules create default-allow-ssh \
        --direction=INGRESS \
        --priority=1000 \
        --network=default \
        --action=ALLOW \
        --rules=tcp:22 \
        --source-ranges=0.0.0.0/0
    

创建安全 Web 代理政策

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理

  3. 点击政策标签页。

  4. 点击创建政策

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

  6. 输入政策说明,例如 My new swp policy

  7. 区域列表中,选择要创建网站代理政策的区域。

  8. 如果您想为 Web 代理配置 TLS 检查,请选择配置 TLS 检查

  9. TLS 检查政策列表中,选择您创建的 TLS 检查政策。只有您创建的 TLS 检查政策才会显示在列表中。

  10. 如果要为政策创建规则,请点击继续,然后点击添加规则。如需了解详情,请参阅创建安全 Web 代理规则

  11. 点击创建

Cloud Shell

  1. 某些 Web 代理政策要求流量必须经过 TLS 加密才能进行评估。根据您是否需要 TLS 加密,使用以下任一方法创建政策:

    • 使用 TLS 检查配置创建政策。

      如需启用 TLS 检查,请执行启用 TLS 检查中所述的步骤,然后创建 policy.yaml 文件:

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
      
    • 创建不包含 TLS 检查配置的政策。

      如果您不想启用 TLS 检查,请创建文件 policy.yaml

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      
  2. 创建安全 Web 代理政策:

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

创建安全 Web 代理规则

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理

  3. 点击政策标签页。

  4. 点击您的政策名称。

  5. 点击添加规则

  6. 填充规则字段:

    1. 名称
    2. 说明
    3. 状态
    4. 优先级:规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中 0 是最高优先级。
    5. 操作部分中,指定是允许(允许)还是拒绝(拒绝)与规则匹配的连接。
    6. 会话匹配部分,指定会话匹配条件。如需详细了解 SessionMatcher 的语法,请参阅 CEL 匹配器语言参考文档
    7. 如需启用 TLS 检查,请选择启用 TLS 检查
    8. 应用匹配部分中,指定与请求匹配的条件。如果您未为 TLS 检查启用规则,则请求只能匹配 HTTP 流量。
    9. 点击创建
  7. 点击添加规则以添加其他规则。

  8. 点击创建以创建该政策。

Cloud Shell

  1. 根据您是否需要 TLS 加密,使用以下任一方法创建规则:

    • 使用 TLS 检查配置创建规则。

      如需启用 TLS 检查,请创建文件 rule.yaml

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-wikipedia-org
      description: Allow wikipedia
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'wikipedia.org'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
      
    • 创建不含 TLS 检查配置的规则。

      如果您不想启用 TLS 检查,请创建文件 rule.yaml

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-wikipedia-org
      description: Allow wikipedia.org
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'wikipedia.org'
      
  2. 创建安全政策规则:

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

设置 Web 代理

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理

  3. 点击网络代理标签页。

  4. 点击设置网络代理

  5. 输入您要创建的网络代理的名称,例如 myswp

  6. 输入 Web 代理的说明,例如 My new swp

  7. 区域列表中,选择要创建网站代理的区域。

  8. 网络列表中,选择要创建网站代理的网络。

  9. 子网列表中,选择要创建 Web 代理的子网。

  10. 输入网站代理 IP 地址。

  11. 证书列表中,选择要用于创建网站代理的证书。

  12. 政策列表中,选择要与网站代理关联的政策。

  13. 点击创建

Cloud Shell

  1. 创建 gateway.yaml 文件:

    name: projects/PROJECT_ID/locations/REGION/gateways/swp1
    type: SECURE_WEB_GATEWAY
    addresses: ["10.128.0.99"]
    ports: [443]
    certificateUrls: ["projects/PROJECT_ID/locations/REGION/certificates/cert1"]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/default
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/default
    scope: samplescope
    
  2. 创建安全 Web 代理实例:

    gcloud network-services gateways import swp1 \
        --source=gateway.yaml \
        --location=REGION
    

    安全 Web 代理实例可能需要几分钟才能部署完毕。

测试连接性

  1. 连接到您之前预配的虚拟机:

    gcloud compute ssh swp-test-vm \
        --zone=ZONE
    
  2. 测试安全 Web 代理实例:

    curl -x http://10.128.0.99:80 https://wikipedia.org
    

    如果您已将安全 Web 代理实例配置为进行 TLS 检查,请使用以下命令:

    curl -x http://10.128.0.99:80 https://wikipedia.org/index.html
    

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

删除安全 Web 代理实例 swp1

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。

  3. 选择要删除的网站代理。

  4. 点击删除

  5. 再次点击删除进行确认。

Cloud Shell

gcloud network-services gateways delete swp1 \
    --location=REGION

删除规则 allow-wikipedia-org

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。

  3. 点击政策标签页。

  4. 点击您的政策。

  5. 选择要删除的规则。

  6. 点击删除

  7. 再次点击删除进行确认。

Cloud Shell

gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
    --location=REGION \
    --gateway-security-policy=policy1

删除安全 Web 代理政策 policy1

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。

  3. 点击政策标签页。

  4. 选择要删除的政策。

  5. 点击删除

  6. 再次点击删除进行确认。

Cloud Shell

gcloud network-security gateway-security-policies delete policy1 \
    --location=REGION

删除 Linux 虚拟机实例 swp-test-vm

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到“虚拟机实例”

  2. 选择要删除的实例。

  3. 点击删除

Cloud Shell

gcloud compute instances delete swp-test-vm

后续步骤