本页面介绍了如何设置 专用网络访问权限以及如何在 网络内路由 Google Cloud 流量。
如需设置专用网络访问权限,您需要配置三个项目:
- 一个项目,其中包含目标虚拟机实例 (VM) 或目标内部负载均衡器要使用的虚拟私有云 (VPC) 网络。
- 一个项目,充当 Service Directory 服务项目。
- 一个项目,用于配置调用专用网络访问权限的 Google Cloud 产品。Dialogflow CX 就是一个可以使用专用网络访问权限调用端点的产品示例。 Google Cloud
项目的工件可以位于同一项目或不同项目中。
准备工作
在配置专用网络访问权限之前,请完成以下步骤:
对于每个项目,在 Google Cloud 控制台中,点击 API 和 服务 页面上的 启用 API 和服务 ,以启用您要使用的 API,包括 Service Directory API。
如需将 VPC 网络关联到本地主机, 请创建 Cloud VPN 隧道 或 Cloud Interconnect 连接。
确保 Google Cloud 项目位于网络项目和 Service Directory 项目的 VPC Service Controls 边界内,适用于
servicedirectory.googleapis.com。详细了解 VPC Service Controls。
为 VPC 网络配置项目
如需为 VPC 网络配置项目,请按以下步骤操作:
创建 VPC 网络 或选择一个现有 VPC 网络,该网络在您要使用的区域中具有 仅 IPv4 或双堆栈子网。 传统网络不受支持。
创建必要的入站流量允许防火墙规则。
如果目标是虚拟机或内部直通式网络负载平衡器,防火墙规则必须允许从
35.199.192.0/19范围到目标虚拟机实例上运行的软件所用端口的 TCP 流量。如果目标是内部应用负载均衡器或内部代理网络负载均衡器,防火墙规则必须允许从
35.199.192.0/19范围到负载均衡器所用 IP 地址和端口的 TCP 流量。
如需详细了解
35.199.192.0/19范围,请参阅 Cloud DNS 和 Service Directory 的路径。向将调用端点的产品的服务 代理授予 Identity and Access Management (IAM) Private Service Connect Authorized Service 角色 (
roles/servicedirectory.pscAuthorizedService)。 Google Cloud如需详细了解角色和权限,请参阅 Service Directory 权限和角色。
配置 Service Directory 项目
如需配置 Service Directory 项目,请按以下步骤操作:
向将调用端点的 Google Cloud 产品的服务代理授予 IAM Service Directory Viewer 角色 (
roles/servicedirectory.viewer)。创建 Service Directory 命名空间和服务。 然后,按照下一部分中的步骤为此服务创建端点。
创建具有专用网络访问权限的端点
如需创建配置了专用网络访问权限的端点,请按以下步骤操作:
控制台
- 在 Google Cloud 控制台中,前往 Service Directory 命名空间 页面。 前往 Service Directory 命名空间
- 点击一个命名空间。
- 点击一项服务。
- 点击添加端点 。
- 对于端点名称,请输入端点的名称。
- 对于 IP 地址,请输入 IPv4 地址,例如
192.0.2.0。 - 对于端口,请输入端口号,例如
443或80。 - 如需启用专用网络访问权限,请在关联的 VPC 网络 中选择所需
选项:
- 如需从可用网络列表中进行选择,请点击从列表中 选择 ,然后选择网络。
- 如需指定项目和网络,请点击 按项目和网络名称指定,然后输入 项目编号和网络名称。
- 点击创建 。
gcloud
使用 gcloud service-directory endpoints create
command,并指定
项目 ID 和网络路径。
gcloud service-directory endpoints create ENDPOINT_NAME \ --project=PROJECT_ID \ --location=REGION \ --namespace=NAMESPACE_NAME \ --service=SERVICE_ID \ --address=IP_ADDRESS \ --port=PORT_NUMBER \ --network=NETWORK_PATH
替换以下内容:
ENDPOINT_NAME:您在服务中创建的端点的名称,例如my-endpointPROJECT_ID:项目的 IDREGION:包含命名空间的区域 Google CloudNAMESPACE_NAME:您为命名空间提供的名称,例如my-namespaceSERVICE_ID:服务的 IDIP_ADDRESS:端点的 IP 地址,例如192.0.2.0PORT_NUMBER:端点运行的端口,通常为443或80NETWORK_PATH:网络的网址,例如projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME
配置 Google Cloud 产品项目
如需配置 Google Cloud 产品项目,请按以下步骤操作:
启用产品 API。 Google Cloud
配置产品以调用您创建的 Service Directory 服务。 Google Cloud 所需步骤取决于具体的 Google Cloud 产品。
使用场景
本部分提供了配置专用网络访问权限的使用场景示例。
当 VPC 网络、虚拟机和 Service Directory 位于同一项目中时,调用 HTTP 端点
在此使用场景中,您将 Dialogflow CX(一种用于自然语言处理的 Google Cloud 产品 )设置为调用虚拟机上的 HTTP 端点。在调用端点时,请确保流量不会通过公共互联网传输。
在此使用场景中,您将在同一项目中创建以下工件:
- VPC 网络
- 虚拟机
- Service Directory 服务
- Dialogflow CX
图 1 显示了如何允许项目的 Google 服务配置出站到虚拟机。虚拟机位于项目的 VPC 网络中。
设置网络和目标网络
- 创建一个项目,例如
myproject。 创建一个 VPC 网络,例如
vpc-1。创建 VPC 网络时,在子网创建模式中, 选择自动。
创建防火墙规则, 例如
firewall-1。创建防火墙规则时,输入或选择以下值:
- 对于网络,选择
vpc-1。 - 对于来源 IPv4 范围,输入
35.199.192.0/19。 - 对于协议和端口,选择 TCP 并输入
443或80。
- 对于网络,选择
在
us-central1区域中,创建 一个虚拟机,例如vm-1。创建虚拟机时,输入或选择以下值:
- 对于 网络 > 网络接口,选择
vpc-1。 - 对于防火墙,选择允许 HTTP 流量。
如果您想使用 HTTPS,请选择允许 HTTPS 流量 。另请确保 您安装了公钥基础架构 (PKI) 传输层 安全协议 (TLS) 证书。
- 对于 网络 > 网络接口,选择
在
us-central1区域中,创建一个命名空间,例如namespace-1。在该命名空间中,注册 Service Directory 服务,例如
sd-1。在
sd-1中创建一个端点。对于端点地址,请使用端口443上vm-1的内部 IP 地址。如需了解详情,请参阅创建具有专用网络 访问权限的 端点。向将调用端点的 Google Cloud 产品的服务代理授予以下 IAM 角色:
- Service Directory Viewer 角色 (
roles/servicedirectory.viewer) - Private Service Connect Authorized Service 角色 (
roles/servicedirectory.pscAuthorizedService)
- Service Directory Viewer 角色 (
可选:如果您想添加更多虚拟机,可以设置另一个虚拟机(例如
vm-2),并添加其端点(例如endpoint-2)。
设置 Google Cloud 产品
- 配置 Google Cloud 产品配置,例如“ Cloud Scheduler,每分钟调用我一次”。
- 设置 HTTP 请求。
- 指定请求应通过专用网络(例如通过
sd-1)传输。 - 可选:配置 Certificate Authority Service 设置。
产品现在可以使用 sd-1 调用 HTTP 请求。 Google Cloud
当共享 VPC 网络、虚拟机和 Service Directory 位于不同项目中时,调用 HTTP 端点
在此使用场景中,您将 Dialogflow CX(一种用于自然语言处理的服务)设置为调用虚拟机上的 HTTP 端点。 Google Cloud在调用端点时,请确保流量不会通过公共互联网传输。
在此使用场景中,您将在不同项目中创建以下工件:
- 共享 VPC 网络
- 虚拟机
- Service Directory 服务
- Dialogflow CX
在创建项目之前,请注意以下事项:
- 确保 API 调用遵循 VPC Service Controls 边界。
- 确保 Google Cloud 服务项目的配置 允许出站到位于 VPC 网络 项目中的虚拟机。
- 生产者项目可能与 Google Cloud 服务 项目不同。
- 确保使用这两个项目的 VPC Service Controls 边界。
- Service Directory 项目和网络项目不需要连接,但它们都必须是同一 VPC Service Controls 的一部分。
- 在网络和服务中,防火墙和 IAM 默认处于停用状态。
图 2 显示了如何在强制执行 VPC Service Controls 边界的情况下,使用专用网络访问权限发送流量。
配置网络项目
- 创建一个项目,例如
my-vpc-project。 创建一个 VPC 网络,例如
vpc-1。创建 VPC 网络时,对于子网创建模式, 选择自动。
创建防火墙规则, 例如
firewall-1。创建规则时,输入或选择以下值:
- 对于网络,选择
vpc-1。 - 对于来源 IPv4 范围,输入
35.199.192.0/19。 - 对于协议和端口,选择 TCP 并输入
443或80。
- 对于网络,选择
在
us-central1区域中,创建 一个虚拟机,例如vm-1。创建虚拟机时,输入或选择以下值:
- 对于 网络 > 网络接口,选择
vpc-1。 - 对于防火墙,选择允许 HTTP 流量。
如果您想使用 HTTPS,请选择允许 HTTPS 流量 。另请确保 您安装了公钥基础架构 (PKI) 传输层 安全协议 (TLS) 证书。
- 对于 网络 > 网络接口,选择
如果您使用的是 VPC Service Controls,VPC Service Controls 边界将允许 Service Directory 连接到服务项目和 Service Directory 项目。 Google Cloud
配置 Service Directory 项目
创建一个项目,例如
my-sd-project。由于 VPC 网络项目和 Service Directory 项目是不同的项目,因此您需要额外的 IAM 权限。
从网络项目向创建 Service Directory 端点的 IAM 主账号授予 Service Directory Network Attacher 角色 (
roles/servicedirectory.networkAttacher)。创建指向 VPC 网络中虚拟机的 Service Directory 端点:
- 在
us-central1区域中,创建一个命名空间,例如namespace-1。 - 在该命名空间中,注册 Service Directory 服务,例如
sd-1。 - 在
sd-1中创建一个端点。对于端点地址,请使用端口443上vm-1的内部 IP 地址。如需了解详情,请参阅创建具有专用网络 访问权限的 端点。
- 在
向将调用端点的 Google Cloud 产品的服务代理授予以下 IAM 角色:
- Service Directory 项目中的 Service Directory Viewer 角色 (
roles/servicedirectory.viewer) - 网络项目中的 Private Service Connect Authorized Service 角色 (
roles/servicedirectory.pscAuthorizedService)
- Service Directory 项目中的 Service Directory Viewer 角色 (
如果您使用的是 VPC Service Controls,VPC Service Controls 边界将允许 Service Directory 连接到服务项目和 Service Directory 项目。 Google Cloud
配置 Google Cloud 服务项目
- 为您使用的 Google Cloud 服务启用 API。
- 如需配置 Google Cloud 服务
PUSH,请使用 Service Directory 项目中的 Service Directory 服务。
如果您使用的是 VPC Service Controls,VPC Service Controls 边界将允许 Service Directory 连接到网络项目和 Service Directory 项目。
将 Service Directory 专用网络访问权限与 Dialogflow 搭配使用
如需了解如何将 Service Directory 专用网络访问权限 与 Dialogflow 搭配使用,请参阅使用 Service Directory 进行 专用网络访问。
后续步骤
- 如需大致了解 Service Directory,请参阅 Service Directory 概览。
- 如需详细了解 Private Service Connect,请参阅 Private Service Connect。
- 如需了解您在使用 Service Directory 时可能会遇到的常见问题的解决方案,请参阅 问题排查。