部署安全 Web 代理实例
本快速入门介绍了如何部署和测试安全 Web 代理实例。
准备工作
完成初始设置步骤。
如需运行此页面中的命令,请在以下开发环境之一中设置 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
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 控制台中,前往网络安全页面。
点击安全 Web 代理。
点击政策标签页。
点击创建政策。
输入您要创建的政策的名称,例如
myswppolicy
。输入政策说明,例如
My new swp policy
。在区域列表中,选择要创建网站代理政策的区域。
如果您想为 Web 代理配置 TLS 检查,请选择配置 TLS 检查。
在 TLS 检查政策列表中,选择您创建的 TLS 检查政策。只有您创建的 TLS 检查政策才会显示在列表中。
如果要为政策创建规则,请点击继续,然后点击添加规则。如需了解详情,请参阅创建安全 Web 代理规则。
点击创建。
Cloud Shell
某些 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
创建安全 Web 代理政策:
gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml \ --location=REGION
创建安全 Web 代理规则
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。
点击政策标签页。
点击您的政策名称。
点击添加规则。
填充规则字段:
- 名称
- 说明
- 状态
- 优先级:规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中
0
是最高优先级。 - 在操作部分中,指定是允许(允许)还是拒绝(拒绝)与规则匹配的连接。
- 在会话匹配部分,指定会话匹配条件。如需详细了解
SessionMatcher
的语法,请参阅 CEL 匹配器语言参考文档。 - 如需启用 TLS 检查,请选择启用 TLS 检查。
- 在应用匹配部分中,指定与请求匹配的条件。如果您未为 TLS 检查启用规则,则请求只能匹配 HTTP 流量。
- 点击创建。
点击添加规则以添加其他规则。
点击创建以创建该政策。
Cloud Shell
根据您是否需要 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'
创建安全政策规则:
gcloud network-security gateway-security-policies rules import allow-wikipedia-org \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
设置 Web 代理
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。
点击网络代理标签页。
点击设置网络代理。
输入您要创建的网络代理的名称,例如
myswp
。输入 Web 代理的说明,例如
My new swp
。在区域列表中,选择要创建网站代理的区域。
在网络列表中,选择要创建网站代理的网络。
在子网列表中,选择要创建 Web 代理的子网。
输入网站代理 IP 地址。
在证书列表中,选择要用于创建网站代理的证书。
在政策列表中,选择要与网站代理关联的政策。
点击创建。
Cloud Shell
创建
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
创建安全 Web 代理实例:
gcloud network-services gateways import swp1 \ --source=gateway.yaml \ --location=REGION
安全 Web 代理实例可能需要几分钟才能部署完毕。
测试连接性
连接到您之前预配的虚拟机:
gcloud compute ssh swp-test-vm \ --zone=ZONE
测试安全 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
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。
选择要删除的网站代理。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-services gateways delete swp1 \
--location=REGION
删除规则 allow-wikipedia-org
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。
点击政策标签页。
点击您的政策。
选择要删除的规则。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
--location=REGION \
--gateway-security-policy=policy1
删除安全 Web 代理政策 policy1
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。您可以查看所有网络代理的列表,也可以仅查看特定网络中的代理。
点击政策标签页。
选择要删除的政策。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-security gateway-security-policies delete policy1 \
--location=REGION
删除 Linux 虚拟机实例 swp-test-vm
控制台
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择要删除的实例。
点击删除。
Cloud Shell
gcloud compute instances delete swp-test-vm