如需集中管理多个 VPC 网络中的 Secure Web Proxy 部署,您可以通过 Private Service Connect 服务连接提供 Secure Web Proxy。
使用 Private Service Connect 部署 Secure Web Proxy 涉及以下步骤:
- 创建安全 Web 代理 政策和 规则。
- 创建使用您的政策的 Secure Web Proxy 实例。
- 创建服务连接,以将 Secure Web Proxy 实例发布为 Private Service Connect 服务。
- 在需要连接到 Secure Web Proxy 的每个 VPC 网络中创建 Private Service Connect 使用方端点。
- 将工作负载的出站流量指向区域内的集中式 Secure Web Proxy 实例。
准备工作
在完成本页面中的步骤之前,请先完成 初始设置步骤。
创建和配置 Secure Web Proxy 实例
本指南介绍了如何创建 Secure Web Proxy 政策和规则,以按会话匹配流量。
如需了解如何选择性地配置 TLS 检查,请参阅 启用 TLS 检查。
如需了解如何选择性地配置应用级匹配, 请参阅 创建和部署 Secure Web Proxy 实例。
创建 Secure Web Proxy 政策
控制台
在 Google Cloud 控制台中,前往 SWP 政策 页面。
点击 创建政策。
输入要创建的政策的名称,例如
myswppolicy。输入政策的说明。
在区域 列表中,选择要在其中创建 Web 代理政策的区域。
点击创建 。
Cloud Shell
创建
policy.yaml文件。description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1请替换以下内容:
PROJECT_ID:您的项目 IDREGION:政策的区域
根据
policy.yaml创建 Secure Web Proxy 政策。gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml \ --location=REGION
向政策添加 Secure Web Proxy 规则
配置 Secure Web Proxy 规则,以允许来自每个工作负载的出站流量。
本部分介绍了如何创建规则,以允许来自通过 Resource Manager 标记或服务帐号标识的工作负载的流量。如需了解如何以 其他方式匹配流量,请参阅 CEL 匹配器语言参考文档。
控制台
在 Google Cloud 控制台中,前往 SWP 政策 页面。
点击您的政策名称。
如需添加规则以允许工作负载访问互联网,请执行以下操作:
- 点击 添加规则。
- 输入优先级。系统会按从高到低的优先级评估规则,其中
0是最高优先级。 - 输入名称。
- 请输入说明
- 输入状态。
- 对于操作 ,请选择允许 。
- 点击状态 ,然后选择已启用 。
在会话匹配 部分中,指定 用于匹配会话的条件。
例如,如需允许来自 Resource Manager 标记值 ID 为
tagValues/123456的工作负载的流量访问 google.com,请输入以下内容:source.matchTag('tagValues/123456') && host() == 'google.com'如需允许来自使用服务帐号
my-service-account@my-project.iam.gserviceaccount.com的工作负载的流量访问 google.com,请输入以下内容:source.matchServiceAccount('my-service-account@my-project.iam.gserviceaccount.com') && host() == 'google.com'
点击创建 。
Cloud Shell
对于要添加的每条规则,请执行以下操作:
创建
rule.yaml文件,并指定 用于匹配会话的条件。如需允许来自通过 Resource Manager 标记值 ID 标识的工作负载的流量访问特定网域,请创建以下文件:
name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow traffic based on tag enabled: true priority: PRIORITY basicProfile: ALLOW sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'请替换以下内容:
PROJECT_ID:您的项目 IDREGION:政策的区域RULE_NAME:规则的名称PRIORITY:规则的优先级 - 系统会按从高到低的优先级评估规则,其中0是最高优先级TAG_VALUE_ID:要允许流量的工作负载的标记值 IDDOMAIN_NAME:要允许流量访问的网域名称
如需允许来自使用服务帐号的工作负载的流量访问特定网域,请创建以下文件:
name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow traffic based on service account enabled: true priority: PRIORITY basicProfile: ALLOW sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'将
SERVICE_ACCOUNT替换为服务帐号的名称。
如需使用在
rule.yaml中定义的规则更新政策,请使用以下命令:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
部署 Secure Web Proxy 实例
在要用于出站流量的 Virtual Private Cloud (VPC) 网络中以显式路由模式部署 Secure Web Proxy 实例。创建实例时,请将其与您在之前的步骤中创建的政策和规则相关联。
使用 Private Service Connect 服务连接发布 Secure Web Proxy 不支持下一个跃点路由模式。
如需了解如何配置实例,请参阅 设置 Web 代理。您暂时无需完成该页面上的其他步骤。
在 hub 和 spoke 模型中将 Secure Web Proxy 部署为 Private Service Connect 服务
本部分介绍了如何使用 hub 和 spoke 模型将 Secure Web Proxy 部署为 Private Service Connect 服务,以集中管理出站流量。
将 Secure Web Proxy 发布为 Private Service Connect 服务
如需将 Secure Web Proxy 发布为服务,请创建 Private Service Connect 子网和服务连接。子网和服务连接必须与访问服务连接的 Private Service Connect 端点共享同一区域。
为 Private Service Connect 创建子网
如需为 Private Service Connect 创建子网,请执行以下操作。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击某个 VPC 网络的名称以显示其 VPC 网络详情页面。
点击子网。
点击添加子网。在显示的面板中,执行以下操作:
- 提供名称。
- 选择区域。
- 在用途 部分中,选择 Private Service Connect 。
- 对于 IP 堆栈类型 ,选择 IPv4(单堆栈) 或 IPv4 和 IPv6(双堆栈) 。
- 输入 IPv4 范围 。例如
10.10.10.0/24。 - 如果您要创建双栈子网,请将 IPv6 访问类型设置为内部。
- 点击 Add (添加)。
Cloud Shell
执行下列其中一项操作:
如需创建仅 IPv4 的 Private Service Connect 子网,请执行以下操作:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --range=SUBNET_RANGE \ --purpose=PRIVATE_SERVICE_CONNECT如需创建双栈 Private Service Connect 子网,请执行以下操作:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL \ --range=SUBNET_RANGE \ --purpose=PRIVATE_SERVICE_CONNECT
替换以下内容:
SUBNET_NAME:要分配给子网的名称。NETWORK_NAME:用于新子网的 VPC 的名称。REGION:新子网的区域。此区域必须与您要发布服务的区域相同。SUBNET_RANGE:要用于子网的 IPv4 地址范围,例如10.10.10.0/24。
创建服务连接
如需将 Secure Web Proxy 作为服务连接发布到中央 (hub) VPC 网络中,请执行以下操作。
本部分介绍了如何创建自动接受所有连接的服务连接。如需了解显式批准或其他 配置选项,请参阅 发布经过明确批准的服务。
控制台
在 Google Cloud 控制台中,前往 Private Service Connect 页面。
点击已发布服务标签页。
点击发布服务 。
在目标详情 部分中,选择 Secure Web Proxy 。
选择要发布的 Secure Web Proxy 实例。“网络”和“区域”字段会填充所选 Secure Web Proxy 实例的 详细信息。
对于服务名称,输入服务连接的名称。
为服务选择一个或多个 Private Service Connect 子网。相关列表会填充来自所选 Secure Web Proxy 实例的 VPC 网络的子网。
在连接偏好设置 部分中,选择 Automatically accept all connections (自动接受所有连接)。
点击添加服务 。
Cloud Shell
使用 gcloud compute service-attachments create 命令。
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
--target-service=SWP_INSTANCE_URI \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=NAT_SUBNET_NAME \
--region=REGION \
--project=PROJECT \
请替换以下内容:
SERVICE_ATTACHMENT_NAME:服务连接的名称SWP_INSTANCE_URI:Secure Web Proxy 实例的 URI,格式如下://networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAMENAT_SUBNET_NAME:Private Service Connect 子网的名称REGION:安全 Web 代理部署的区域PROJECT:Secure Web Proxy 部署的项目
创建端点
在需要通过集中式 Secure Web Proxy 实例发送出站流量的每个 VPC 网络和区域中创建一个端点。针对需要创建的每个端点重复以下步骤。
控制台
在 Google Cloud 控制台中,前往 Private Service Connect 页面。
点击已连接的端点标签页。
点击连接端点。
对于目标 ,选择已发布的服务 。
对于目标服务,输入要 连接到的服务连接 URI。
服务连接 URI 的格式为:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME对于端点名称,输入要用于端点的名称。
为端点选择网络。
为端点选择子网。
为端点选择 IP 地址。如果您需要新的 IP 地址,可以创建一个:
- 点击 IP 地址 下拉菜单,然后选择创建 IP 地址 。
- 为 IP 地址输入名称 和可选的说明 。
- 选择 IP 版本。
如果您要创建 IPv4 地址,请选择自动分配 或让我选择 。
如果您选择了让我选择,请输入您要使用的自定义 IP 地址。
点击预留。
点击添加端点 。
Cloud Shell
预留要分配给该端点的内部 IP 地址。
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET \ --ip-version=IP_VERSION请替换以下内容:
ADDRESS_NAME:分配给预留 IP 地址的名称。REGION:端点 IP 地址所在的区域。此区域必须与服务提供方的服务连接所在区域相同。SUBNET:端点 IP 地址的子网名称。IP_VERSION:IP 地址的 IP 版本,可以是IPV4或IPV6。默认为IPV4。如需指定IPV6,IP 地址必须连接到具有内部 IPv6 地址范围的 子网。
创建转发规则,以将该端点连接到服务提供方的服务连接。
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT
请替换以下内容:
ENDPOINT_NAME:分配给端点的名称。REGION:端点所在区域。此区域必须与服务提供方的服务连接所在区域相同。NETWORK_NAME:端点的 VPC 网络的名称。ADDRESS_NAME:预留地址的名称。SERVICE_ATTACHMENT:服务提供方的服务连接的 URI。例如:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
将工作负载指向 Private Service Connect 端点
配置代理环境变量,以便每个工作负载都使用 Private Service Connect 端点的 IP 地址进行出站流量。
例如,对于 Linux 或 macOS 环境中的工作负载,您可以使用命令行暂时配置 HTTP_PROXY 和 HTTPS_PROXY 环境变量:
export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"
请替换以下内容:
ENDPOINT_IP_ADDRESS:端点的内部 IP 地址HTTP_PORT:用于接收 HTTP 流量的端口HTTPS_PORT:用于接收 HTTPS 流量的端口
如需了解如何在工作负载的环境中永久设置代理变量,请参阅操作系统的文档。