部署安全 Web 代理实例
本快速入门指南介绍了如何部署和测试安全 Web 代理实例。
这些步骤介绍了如何在显式路由模式下部署安全 Web 代理,以用作显式代理。处于显式路由模式的安全 Web 代理实例可以发布为 Private Service Connect 服务。
或者,您也可以在下一个跃点路由模式下部署安全 Web 代理。如需了解详情,请参阅将安全 Web 代理部署为下一个跃点。
准备工作
完成初始设置步骤。
可选:如果您要运行本指南中指定的
gcloud
命令行示例,请在以下任一开发环境中安装 Google Cloud CLI:Cloud Shell
如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell:
Cloud Shell 会话会在本页末尾启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。
本地 shell
如需使用本地开发环境,请按照以下步骤操作:
创建或选择 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
创建 Linux 虚拟机 (VM) 实例。
gcloud compute instances create swp-test-vm \ --subnet=default \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-11
将
ZONE
替换为测试虚拟机实例所在的区域。Compute Engine 向创建虚拟机的用户授予 Compute Instance Admin 角色 (
roles/compute.instanceAdmin
)。Compute Engine 还会将该用户添加到 sudo 群组。创建防火墙规则。
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 代理政策
控制台
在 Google Cloud 控制台中,前往 SWP 政策页面。
点击
创建政策。输入您要创建的政策的名称,例如
policy1
。输入政策的说明,例如
My new swp policy
。在区域列表中,选择要创建网站代理政策的区域。
如果要为政策创建规则,请点击添加规则。 如需了解详情,请参阅创建安全 Web 代理规则部分。
点击创建。
Cloud Shell
创建
policy.yaml
文件。description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
替换以下内容:
PROJECT_ID
:您的项目的 IDREGION
:您的政策的区域
创建安全 Web 代理政策。
gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml \ --location=REGION
创建安全 Web 代理规则
控制台
在 Google Cloud 控制台中,前往 SWP 政策页面。
点击您的政策名称。
点击
添加规则。填充以下规则字段:
- 名称
- 说明
- 状态
- 优先级:规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中
0
是最高优先级。 - 在操作部分中,指定是允许(允许)还是拒绝(拒绝)与规则匹配的连接。
- 在会话匹配部分,指定会话匹配条件。如需详细了解
SessionMatcher
的语法,请参阅 CEL 匹配器语言参考文档。 - 可选:如果要启用 TLS 检查,请选择启用 TLS 检查。
在应用匹配部分中,指定与请求匹配的条件。如果您未为 TLS 检查启用规则,则请求只能匹配 HTTP 流量。
如需了解如何匹配 TPC 流量,请参阅为应用配置 TCP 代理规则。
点击创建。
点击添加规则以添加其他规则。
Cloud Shell
创建
rule.yaml
文件,如下所示。如需详细了解SessionMatcher
的语法,请参阅 CEL 匹配器语言参考文档。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'
可选:或者,如果您想使用 TLS 检查配置创建规则,请创建
rule.yaml
文件,如图所示。如需了解如何匹配 TPC 流量,请参阅为应用配置 TCP 代理规则。
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' applicationMatcher: request.path.contains('index.html') tlsInspectionEnabled: true
替换以下内容:
PROJECT_ID
:您的项目的 IDREGION
:您的政策的区域
创建安全政策规则。
gcloud network-security gateway-security-policies rules import allow-wikipedia-org \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
设置 Web 代理
本部分介绍了如何在显式路由模式下部署安全 Web 代理,使其充当显式代理。
控制台
在 Google Cloud 控制台中,前往网站代理页面。
点击
创建安全 Web 代理。输入您要创建的网络代理的名称,例如
myswp
。输入 Web 代理的说明,例如
My new swp
。对于路由模式,请选择显式选项。
在区域列表中,选择要创建网站代理的区域。
在网络列表中,选择要创建网站代理的网络。
在子网列表中,选择要创建 Web 代理的子网。
可选:输入安全 Web 代理 IP 地址。您可以输入位于您在上一步中创建的子网中的安全 Web 代理 IP 地址范围内的 IP 地址。如果您未输入 IP 地址,安全 Web 代理实例会自动从所选子网中选择一个 IP 地址。
在证书列表中,选择要用于创建网站代理的证书。
在政策列表中,选择您创建的要与网站代理关联的政策。
点击创建。
Cloud Shell
创建
gateway.yaml
文件。name: projects/PROJECT_ID/locations/REGION/gateways/swp1 type: SECURE_WEB_GATEWAY addresses: ["IP_ADDRESS"] ports: [443] gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 network: projects/PROJECT_ID/global/networks/NETWORK subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK routingMode: EXPLICIT_ROUTING_MODE
替换以下内容:
PROJECT_ID
:您的项目的 IDREGION
:安全 Web 代理实例所在的区域IP_ADDRESS
:安全 Web 代理实例的 IP 地址NETWORK
:安全 Web 代理实例的网络SUBNETWORK
:安全 Web 代理实例的子网
基于
gateway.yaml
创建安全 Web 代理实例。gcloud network-services gateways import swp1 \ --source=gateway.yaml \ --location=REGION
安全 Web 代理实例可能需要几分钟才能部署完毕。
测试连接性
连接到您之前预配的虚拟机。
gcloud compute ssh swp-test-vm \ --zone=ZONE
将
ZONE
替换为测试虚拟机实例所在的区域。测试安全 Web 代理实例。
curl -x IP_ADDRESS
将
IP_ADDRESS
替换为您的安全 Web 代理实例的 IP 地址。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除 swp1
安全 Web 代理实例
控制台
在 Google Cloud 控制台中,前往网站代理页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
选择要删除的网站代理。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-services gateways delete swp1 \
--location=REGION
将 REGION
替换为您的安全 Web 代理实例所在的区域。
删除 allow-wikipedia-org
规则
控制台
在 Google Cloud 控制台中,前往网站代理页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
点击您的政策。
选择要删除的规则。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
--location=REGION \
--gateway-security-policy=policy1
将 REGION
替换为您的政策所在的区域。
删除 policy1
安全 Web 代理政策
控制台
在 Google Cloud 控制台中,前往网站代理页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
选择要删除的政策。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-security gateway-security-policies delete policy1 \
--location=REGION
将 REGION
替换为您的政策所在的区域。
删除 swp-test-vm
Linux 虚拟机实例
控制台
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择要删除的实例。
点击删除。
Cloud Shell
gcloud compute instances delete swp-test-vm