部署安全 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 代理政策的区域。
如果要为 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 代理。
点击政策标签页。
点击您的政策名称。
点击添加规则。
填充规则字段:
- 名称
- 说明
- Status
- 优先级:规则的数字评估顺序。规则按优先级从高到低进行评估,其中
0
为最高优先级。 - 在操作部分中,指定是允许 (Allow) 还是拒绝 (Deny) 与规则匹配的连接。
- 在会话匹配部分中,指定用于匹配会话的条件。如需详细了解
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 代理。
点击 Web 代理标签页。
点击设置 Web 代理。
为您要创建的 Web 代理输入名称,例如
myswp
。输入 Web 代理的说明,例如
My new swp
。在区域列表中,选择要创建 Web 代理的区域。
在网络列表中,选择您要在其中创建 Web 代理的网络。
在子网列表中,选择要创建 Web 代理的子网。
输入 Web 代理 IP 地址。
在证书列表中,选择要用于创建 Web 代理的证书。
在政策列表中,选择您创建的要与 Web 代理关联的政策。
点击创建。
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: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
”
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中的代理的列表。
选择要删除的 Web 代理。
点击删除。
再次点击删除进行确认。
Cloud Shell
gcloud network-services gateways delete swp1 \
--location=REGION
删除规则“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
删除“安全 Web 代理”政策“policy1
”
控制台
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。您可以查看所有 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