创建和部署 Secure Web Proxy 实例
本快速入门介绍了如何部署和测试 Secure Web Proxy 实例。这些步骤介绍了如何在显式路由模式下部署 Secure Web Proxy,使其充当 显式代理 。
您可以在显式路由模式下将 Secure Web Proxy 实例部署为 Private Service Connect 服务。或者,您也可以 在下一个跃点路由模式下部署 Secure Web Proxy。
在显式路由模式下部署 Secure Web Proxy 包括以下步骤:
- 创建 Secure Web Proxy 政策。
- 创建 Secure Web Proxy 规则并将其添加到政策中。
- 在显式路由模式下设置 Secure Web Proxy 实例。
- 测试从 Linux 虚拟机 (VM) 实例的连接,以确认代理及其政策正常运行。
准备工作
完成 初始设置步骤。
可选:如需运行本文档中指定的
gcloud命令行示例,请在以下任一开发环境中安装 Google Cloud CLI:Cloud Shell
如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。
Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。
如果您之前安装了 gcloud CLI,请确保您拥有最新版本,方法是运行
gcloud components update命令。本地 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 虚拟机实例。
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
所需的角色
请确保您拥有以下角色,以便完成本教程中的任务:
Compute Network Admin 角色 (
roles/compute.networkAdmin)Certificate Manager Editor 角色 (
roles/certificatemanager.editor)
详情请参阅以下内容:
创建 Secure Web Proxy 政策
本部分介绍了创建 Secure Web Proxy 政策的步骤。然后,该政策可以充当容器,用于存放控制通过 Secure Web Proxy 的流量的所有安全规则。创建政策后,您可以创建规则并将其添加到政策中。
控制台
在 Google Cloud 控制台中,前往 SWP 政策 页面。
点击 创建政策。
在名称字段中,输入政策的名称,例如
myswppolicy。在 说明 字段中,输入政策的说明,例如
My new swp policy。对于区域,选择您要在其中创建 政策的区域,例如
us-central1。如果您要为政策创建规则,请点击添加规则 。 如需了解详情,请参阅创建 Secure Web Proxy 规则 部分。
点击创建 。
Cloud Shell
使用您偏好的文本编辑器创建
policy.yaml文件。将以下内容添加到
policy.yaml文件中:description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/myswppolicy替换以下内容:
PROJECT_ID:您的项目 IDREGION:创建政策的区域,例如us-central1
创建 Secure Web Proxy 政策。
gcloud network-security gateway-security-policies import myswppolicy \ --source=policy.yaml \ --location=REGION
创建 Secure Web Proxy 规则
本部分详细介绍了创建 Secure Web Proxy 规则的步骤。规则有助于定义 Web 流量的实际访问控制。
在您之前创建的政策中,您可以定义规则,例如 allow-wikipedia-org。这些规则指定了匹配 Web
会话的条件(例如,匹配特定主机,如 www.wikipedia.org),然后允许或拒绝 Web 流量。
控制台
在 Google Cloud 控制台中,前往 SWP 政策 页面。
点击政策的名称,例如
myswppolicy。点击 添加规则。
对于每条规则,请执行以下操作:
对于优先级,输入规则的数字评估顺序。 规则的评估顺序从最高优先级到最低优先级,其中
0是最高优先级。在名称 字段中,输入规则的名称,例如
allow-wikipedia-org。在说明 字段中,输入规则的说明,例如
Allow wikipedia.org。对于操作,选择以下选项之一:
- 允许:允许与规则匹配的连接请求。
- 拒绝:拒绝与规则匹配的连接请求。
对于状态 字段,选择以下选项之一以强制执行规则:
- 已启用:在 Secure Web Proxy 实例上强制执行规则。
- 已停用:不在 Secure Web Proxy 实例上强制执行规则。
在 会话匹配 部分中,指定匹配 会话的条件,例如
host() == 'www.wikipedia.org'。如需详细了解
SessionMatcher的语法,请参阅 CEL 匹配器语言参考文档。在应用匹配 部分中,指定匹配请求的条件。由于我们尚未为 TLS 检查启用该规则,因此请求只能匹配 HTTP 流量。
如需详细了解如何匹配 TCP 流量,请参阅 配置 TCP 代理规则。
点击创建 。
如需添加其他规则,请点击添加规则 。
Cloud Shell
使用您偏好的文本编辑器创建
rule.yaml文件。将以下内容添加到
rule.yaml文件中。如需详细了解SessionMatcher的语法,请参阅 CEL 匹配器语言 参考文档。name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow wikipedia.org enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'www.wikipedia.org'替换以下内容:
PROJECT_ID:您的项目 IDREGION:政策的区域RULE_NAME:规则的名称,例如allow-wikipedia-org。
创建安全政策规则。
gcloud network-security gateway-security-policies rules import allow-wikipedia-org \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
设置 Web 代理
本部分介绍了如何在显式路由模式下部署 Secure Web Proxy,使其充当 显式代理 。此外,它还介绍了如何将之前创建的政策和规则与 Secure Web Proxy 实例相关联,确保通过该实例的所有流量都受到定义的访问权限控制。
控制台
在 Google Cloud 控制台中,前往 Web 代理 页面。
点击 创建安全 Web 代理 。
在名称 字段中,输入 Web 代理的名称,例如
myswp。在说明 字段中,输入 Web 代理的说明,例如
My new swp。对于路由模式,选择显式选项。
对于区域,选择您要在其中创建 Web 代理的区域,例如
us-central1。对于网络,选择您要在其中创建 Web 代理的网络。
可选:在 Web 代理 IP 地址 字段中,输入 Secure Web Proxy IP 地址。
您可以输入您在上一步中创建的子网中的 Secure Web Proxy IP 地址范围内的 IP 地址。如果您未输入 IP 地址,则 Secure Web Proxy 实例会自动从所选子网中选择 IP 地址。
对于端口,输入您希望 Web 代理监听的端口号,例如
80或443,在 其上您希望 Web 代理监听。
对于证书,选择您要用于创建 Web 代理的证书 。
对于关联的政策,选择您创建的政策以 与 Web 代理相关联。
点击创建 。
Cloud Shell
使用您偏好的文本编辑器创建
gateway.yaml文件。将以下内容添加到
gateway.yaml文件中:name: projects/PROJECT_ID/locations/REGION/gateways/myswp 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替换以下内容:
根据
gateway.yaml文件创建 Secure Web Proxy 实例。gcloud network-services gateways import myswp \ --source=gateway.yaml \ --location=REGION部署 Secure Web Proxy 实例可能需要几分钟的时间。
测试连接性
本部分重点介绍如何测试从 Linux 虚拟机的连接,以确认新部署的 Secure Web Proxy、其政策及其关联的规则正常运行。
连接到您之前预配的虚拟机。
gcloud compute ssh swp-test-vm \ --zone=ZONE将
ZONE替换为测试虚拟机实例的可用区。测试 Secure Web Proxy 实例。
curl -s -o /dev/null -w "%{http_code}\\n" -x IP_ADDRESS:443 https://www.wikipedia.org将
IP_ADDRESS替换为 Secure Web Proxy 实例的 IP 地址。此命令会输出从
www.wikipedia.org返回的 HTTP 状态代码。如果命令成功,则状态代码为200。但是,如果代理存在问题,则该命令会返回000状态代码,以指示连接错误。如需查看详细的错误消息,请将-v选项添加到命令中。
我们尚未配置此页面上提及的示例中的 TLS 检查。如需详细了解如何配置 Secure Web Proxy 以进行 TLS 检查,然后测试 Secure Web Proxy 实例,请参阅 启用 TLS 检查。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除 swp1 Secure Web Proxy 实例
控制台
在 Google Cloud 控制台中,前往 Web 代理 页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
选择要删除的 Web 代理。在此示例中,Web 代理的名称为
swp1。点击删除 ,然后再次点击删除 进行确认。
Cloud Shell
gcloud network-services gateways delete swp1 \
--location=REGION
将 REGION 替换为 Secure Web Proxy 实例的区域。
删除 allow-wikipedia-org 规则
控制台
在 Google Cloud 控制台中,前往 Web 代理 页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
点击您的政策。在此示例中,政策的名称为
policy1。选择要删除的规则。在此示例中,规则的名称为
allow-wikipedia-org。点击删除 ,然后再次点击删除 进行确认。
Cloud Shell
gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
--location=REGION \
--gateway-security-policy=policy1
将 REGION 替换为政策的区域。
删除 policy1 Secure Web Proxy 政策
控制台
在 Google Cloud 控制台中,前往 Web 代理 页面。您可以查看所有 Web 代理的列表,也可以仅查看特定网络中可用的 Web 代理。
选择要删除的政策。在此示例中,政策的名称为
policy1。点击删除 ,然后再次点击删除 进行确认。
Cloud Shell
gcloud network-security gateway-security-policies delete policy1 \
--location=REGION
将 REGION 替换为政策的区域。
删除 swp-test-vm Linux 虚拟机实例
控制台
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择要删除的实例。在此示例中,
swp-test-vm是 Linux 虚拟机实例的名称。点击删除 。
Cloud Shell
gcloud compute instances delete swp-test-vm