要设置专用网络访问,以便流量在 Google Cloud 网络内运行,您必须配置拥有 VPC 网络、Service Directory 项目以及您拥有的 Google Cloud 服务项目的项目使用。这三个项目可以是相同的,也可以是单独的项目。
- 网络项目是 VPC 网络的项目。
- Service Directory 项目是 Service Directory 服务的项目。 此项目可以是网络项目的共享 VPC 网络中的服务项目。
- Google Cloud 服务项目是调用专用网络访问通道的项目。例如 Google Cloud 服务配置。
准备工作
此过程假定您已完成以下步骤。
- 启用 API您可以通过API 和服务页面(包括 Service Directory API)。
- VPC 网络中的虚拟机实例必须具有专用 IP 地址。
- 对于本地主机,您必须通过现有的 Cloud VPN 隧道或 Cloud Interconnect 连接到 VPC 网络。
配置网络项目
请按照以下步骤配置网络项目。
- 创建或使用现有 VPC 网络。自动模式和自定义模式 VPC 网络均受支持。传统网络不受支持。
如果目标是 Compute Engine 虚拟机或内部负载平衡器后端,则必须允许通过 VPC 防火墙进行入站网络以进行专用网络访问。目标必须允许相应端口(端口
443
或80
)上的35.199.192.0/19
的 TCP 入站流量。向 Identity and Access Management (IAM) Service Directory 网络授予对 Google Cloud 服务项目的访问权限。请注意,Google Cloud 项目必须位于
servicedirectory.googleapis.com
的 Google Cloud 服务和 Service Directory 项目的 VPC Service Controls 边界中。如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览。
配置 Service Directory 项目
请按照以下步骤配置 Service Directory 项目。
- 在 VPC 网络中创建虚拟机或内部负载平衡器。
- 创建 Service Directory 服务,指向您在 VPC 网络中创建的虚拟机或内部负载平衡器。
- 授予 IAM Service Directory 网络对 Google Cloud 服务帐号的访问权限。如需详细了解角色和权限,请参阅 Service Directory 权限和角色。
创建具有专用网络访问权限的端点
要创建配置了专用网络访问权限的端点,请执行以下操作:
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击命名空间。
- 点击相应服务。
- 点击 more_vert,然后点击添加端点。
- 提供端点名称。
- 输入一个 IPv4 IP 地址,例如
192.0.2.0/24
。 - 输入端口号,例如
443
或80
。 - 如需启用专用网络访问权限,请点击从列表中选择,以便从关联的 VPC 网络下的可用网络列表中选择。
- 您还可以通过选择按项目和网络名称指定来提供特定的项目 ID 和网络名称。
- 点击创建。
gcloud
运行指定项目 ID 和网络路径的 gcloud beta service-directory endpoints create
命令。
gcloud beta 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-endpoint
PROJECT_ID
:项目的 IDREGION
:包含命名空间的 Google Cloud 区域NAMESPACE_NAME
:您提供命名空间的名称,例如my-namespace
SERVICE_ID
:服务的 IDIP_ADDRESS
:端点的 IP 地址,例如192.0.2.0/24
PORT_NUMBER
:运行端点的端口,通常为443
或80
NETWORK_PATH
:网络的网址,例如projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME
配置 Google Cloud 服务项目
- 启用 Google Cloud 服务 API。
- 使用您在网络项目中创建的 Service Directory 服务配置 Google Cloud 服务。
- 如果您使用的是 VPC Service Controls,请确保 VPC Service Controls 边界允许 Service Directory 访问网络项目和 Service Directory 项目。
使用场景
本部分提供了配置专用网络访问的示例用例。
当 VPC 网络、虚拟机和 Service Directory 位于同一项目中时,调用 HTTP 端点
您可以设置 Google Cloud 产品,以调用虚拟机上的 HTTP 端点。此类流量不得通过公共互联网传输。
在此设置中,您有多个项目具有 VPC 网络、虚拟机、Service Directory 服务和同一项目中的 Google Cloud 服务。
如需使用专用网络访问设置 Google Cloud 产品,请按照以下步骤操作。
设置您的广告联盟和目标网络
- 创建项目,例如
my-project
。 - 创建 VPC 网络,例如
VPC-1
(projects/project-number/locations/global/networks/my-network)。 - 向
VPC-1
授予对子网或者子网或虚拟机的代理访问权限。 - 允许来自
35.199.192.0/19
的入站流量。 - 在
VPC-1
中的区域us-central1
中创建VM-1
。 - 请将其设置为在端口
P
上运行该服务。 - 如果您更喜欢使用 HTTPS,请确保您已安装公钥基础架构 (PKI) 传输层安全 (TLS) 证书。
- 在
REGION-1
中创建一个 Service Directory 服务SD-1
。 - 在以下位置创建一个端点
SD-1
内部 IP 地址为VM-1
=10.10.10.10
、P
=443
和network
=projects/project-number/global/networks/my-network
有关详细说明,请参阅创建配置了专用网络访问权限的端点中下载 Google 健身应用。 向 Google Cloud 服务帐号授予以下 IAM 角色:
servicedirectory.viewer
servicedirectory.pscAuthorizedService
您也可以设置
VM-2
,并添加Endpoint-2
。
设置 Google Cloud 产品
- 配置 Google Cloud 产品配置
CONFIG-1
,例如“Cloud Scheduler,每分钟给我打电话”。 - 设置 HTTP 请求。
- 指定该请求应经由专用网络(例如,
SD-1
)。 - (可选)配置证书授权机构服务设置。
现在,Google Cloud 产品可以使用 SD-1
调用 HTTP 请求。
当 VPC 网络、虚拟机和 Service 目录位于不同项目中时,调用 HTTP 端点
在此示例配置中,您希望设置 Google Cloud 服务(例如事件、任务或 Pub/Sub)来调用虚拟机上的 HTTP 端点。在此示例中,Service Directory 项目、网络项目和 Google Cloud 服务项目是不同的。此流量不得通过公共互联网传输。(可选)此 API 调用必须遵循 VPC Service Controls 边界。
在这种情况下,Google Cloud 服务项目的配置启用对 Google Cloud 服务项目虚拟机的出站流量,该虚拟机位于网络项目的 VPC 网络中。
Google Cloud 服务项目可能与生产者项目不同。系统使用了这两个项目的 VPC Service Controls 边界。
创建网络项目
确保您拥有以下 IAM 权限:
servicedirectory.services.resolve
(用于消息传递服务)servicedirectory.networks.access
表示网络
请注意以下几点:
- 无需连接 Service Directory 项目和网络项目,但它们必须属于相同的 VPC Service Controls。
- 默认情况下,网络和服务会停用防火墙和 IAM。
如需创建网络项目,请按照以下步骤操作。
- 创建 VPC 网络,例如
VPC-1
(projects/project-number/locations/global/networks/my-network)。 启用 VPC 网络防火墙。
如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到 Google Cloud 服务项目和 Service Directory 项目。
配置 Service Directory 项目
- 在 VPC 网络中创建虚拟机或内部负载平衡器。
- 创建指向 VPC 网络中虚拟机或内部负载平衡器的 Service Directory 服务。
- 授予 IAM Service Directory
service read
对 Google Cloud 服务项目消息传递服务的访问权限。 - 如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到 Google Cloud 服务项目和 Service Directory 项目。
配置 Google Cloud 服务项目
- 为您正在使用的消息传递服务启用 API。
- 使用 Service Directory 项目中的 Service Directory 服务配置消息传递服务
PUSH
。 - 如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到网络项目和 Service Directory 项目。
后续步骤
- 配置 Service Directory 端点。
- 要大致了解 Service Directory,请参阅 Service Directory 概览。
- 如需详细了解 Private Service Connect,请参阅 Private Service Connect。
- 如需解决使用 Service Directory 时可能会遇到的常见问题的解决方案,请参阅问题排查。