部署安全 Web 代理实例

本快速入门介绍了如何部署和测试安全 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. 区域列表中,选择要创建 Web 代理政策的区域。

  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. Status
    4. 优先级:规则的数字评估顺序。规则按优先级从高到低进行评估,其中 0 为最高优先级。
    5. 操作部分中,指定是允许 (Allow) 还是拒绝 (Deny) 与规则匹配的连接。
    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. 点击 Web 代理标签页。

  4. 点击设置 Web 代理

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

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

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

  8. 网络列表中,选择您要在其中创建 Web 代理的网络。

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

  10. 输入 Web 代理 IP 地址。

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

  12. 政策列表中,选择您创建的要与 Web 代理关联的政策。

  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:443 http://wikipedia.org --proxy-insecure
    

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

    curl -x http://10.128.0.99:443 http://wikipedia.org/index.html --proxy-insecure
    

清理

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

删除安全 Web 代理实例“swp1

控制台

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

    前往“网络安全”

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

  3. 选择要删除的 Web 代理。

  4. 点击删除

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

Cloud Shell

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

删除规则“allow-wikipedia-org

控制台

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

    前往“网络安全”

  2. 点击安全 Web 代理。您可以查看所有 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 代理。您可以查看所有 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

后续步骤