配置 VPC Service Controls 和专用集群

本页介绍了 VPC Service Controls 和专用集群的运作方式,以及如何在 Cloud Workstations 中设置它们。

VPC Service Controls

VPC Service Controls 可为您的工作站提供额外的安全保护,有助于降低数据渗漏风险。使用 VPC Service Controls,您可以将项目添加到服务边界,从而防止资源和服务受到源自边界外部的请求的影响。

以下是在 VPC 服务边界中使用 Cloud Workstations 的要求:

  • 为帮助保护 Cloud Workstations,每当您限制 Cloud Workstations API 时,都必须限制服务边界中的 Compute Engine API。
  • 确保可从您的服务边界内的 VPC 访问 Google Cloud Storage API、Google Container Registry API 和 Artifact Registry API。如需将映像拉取到工作站,必须确保这一点。我们还建议您允许从服务边界内的 VPC 访问 Cloud Logging API 和 Cloud Error Reporting API,但这不是使用 Cloud Workstations 所必需的。

  • 确保您的工作站集群是专用集群。配置专用集群可防止从 VPC 服务边界外连接到工作站。Cloud Workstations 服务会阻止在 VPC 服务边界中创建公共集群。
  • 请确保在工作站配置中关闭公共 IP 地址,否则会导致项目中有具有公共 IP 地址的虚拟机。我们强烈建议您使用 constraints/compute.vmExternalIpAccess 组织政策限制条件来关闭 VPC 服务边界中所有虚拟机的公共 IP 地址。如需了解详情,请参阅将外部 IP 地址限制为仅用于特定虚拟机

如需详细了解服务边界,请参阅服务边界详情和配置

架构

将工作站集群配置为专用集群后,工作站集群的控制平面将只有一个内部 IP 地址。这意味着来自公共互联网的客户端无法连接到工作站集群所属的工作站。如需使用专用集群,您必须通过 Private Service Connect 端点手动将专用集群连接到您的虚拟私有云 (VPC) 网络。

使用专用集群的配置需要 两个 PSC 端点:

  • 默认情况下,Cloud Workstations 会创建一个单独的 PSC 端点,以将控制平面连接到工作站虚拟机。

  • 您必须为专用集群创建额外的 PSC 端点。如需从本地机器连接到专用集群中的工作站,您的本地机器必须连接到 VPC 网络。使用 Cloud VPNCloud Interconnect 将您运行机器的外部网络连接到 VPC 网络。此额外的 PSC 端点必须在外部网络通过 Cloud VPN 或 Cloud Interconnect 连接到的同一网络中创建。

下图展示了一个专用集群的示例架构:

图 1. 专用集群

准备工作

在开始之前,请确保您已完成以下必需的设置步骤:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Workstations API.

    Enable the API

  7. 确保您拥有项目的 Cloud Workstations Admin IAM 角色,以便创建工作站配置。 如需在 Google Cloud 控制台中查看您的 IAM 角色,请前往 IAM 页面:

    前往 IAM

  8. Cloud Workstations 托管在从 Compute Engine 的预配置公共 Container-Optimized OS (COS) 映像启动的虚拟机上。如果强制执行 constraints/compute.trustedimageProjects 组织政策限制,您必须设置映像访问限制,以允许用户使用 projects/cos-cloud 或所有公共映像创建启动磁盘。
  9. 可选:启用 Container File System API 以加快工作站启动速度。

    启用 Container File System API

    如需了解详情,请参阅使用图片流功能缩短工作站启动时间

创建专用集群

如需创建专用集群,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Cloud Workstations 页面。

    前往 Cloud Workstations

  2. 前往工作站的集群管理页面。

  3. 点击创建

  4. 为工作站集群输入名称,然后选择区域

  5. 在“网络”部分中,选择此项目中的网络

  6. 选择网络子网

  7. 对于网关类型,请选择专用网关

  8. 可选:指定一个或多个其他项目,用于托管用于启用对私有集群的 HTTP 访问的 Private Service Connect 端点。默认情况下,此端点只能在工作站集群项目和 VPC 网络宿主项目(如果不同)中创建。如有需要,您也可以在创建集群后指定这些项目。

  9. 点击创建。创建集群时,状态会显示为正在更新

    创建集群需要几分钟时间。集群创建完成后,集群的状态可能会显示为已降级。完成创建 PSC 端点部分中的步骤后,集群的状态将在几分钟内变为就绪

启用专用集群连接

客户端无法通过公共互联网连接到专用工作站集群中的工作站。客户端必须位于使用 Private Service Connect (PSC) 连接到工作站集群的网络中。请按照本部分中的步骤连接到工作站:

  1. 创建一个 PSC 端点,将其定位到您的工作站服务连接。

  2. 创建专用 DNS 区域

  3. 使用 Cloud DNS 创建 DNS 记录,将集群的主机名映射到 PSC 端点。

创建 Private Service Connect 端点

如需创建 PSC 端点,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Private Service Connect。

    前往 Private Service Connect

  2. 点击已连接的端点标签页,然后点击添加连接端点

  3. 对于目标,选择已发布的服务

  4. 目标服务字段中,输入为工作站集群创建的服务连接 URI。如需找到此 URI,请在控制台中前往您的工作站集群,然后在网络设置下方查找 Service attachment URI 字段。

  5. Endpoint 字段中,输入端点名称。

  6. 为端点选择网络,然后选择子网。此网络应为您要用于连接到工作站的网络,并且必须与外部网络通过 Cloud VPN 或 Cloud Interconnect 连接的网络相同。

  7. 为端点选择 IP 地址

    如果您需要新的 IP 地址,请选择创建 IP 地址

    1. 为 IP 地址输入名称和可选的描述
    2. 对于静态 IP 地址,选择自动分配。对于自定义 IP 地址,请选择让我选择,然后输入您要使用的 IP 地址。
    3. 对于用途,请选择非共享
    4. 点击预留
  8. 从下拉列表中选择命名空间,或者创建新的命名空间。系统会根据所选子网填充区域

  9. 点击添加端点

  10. 复制端点的 IP 地址,以便在下一部分中创建专用 DNS 区域和 DNS 记录时使用。

创建专用 DNS 区域

按照以下步骤为此工作站集群创建一个专用 DNS 区域,并将 DNS 名称设置为 clusterHostname(您可以在控制台中前往工作站集群找到该名称)。

  1. 在 Google Cloud Console 中,转到创建 DNS 可用区页面。

    前往“创建 DNS 区域”页面

  2. 对于可用区类型,请选择专用

  3. 输入可用区名称,例如 private-workstations-cluster-zone

  4. 为专用地区输入 DNS 名称后缀。该可用区中的所有记录都具有此后缀,将此名称设置为您的 clusterHostname

    如需查找 clusterHostname,请在 Google Cloud 控制台中依次前往 Cloud Workstations  > 集群管理页面,然后点击您的工作站集群以查看主机名。

  5. 可选:添加说明。

  6. 选项下,选择默认(专用)

  7. 选择您在上一部分中创建 PSC 端点的网络,因为 IP 地址仅在该网络上有效。

  8. 点击创建

如需详细了解专用 DNS 区域,请参阅 Cloud DNS 文档,了解如何创建专用区域以及 Cloud DNS 专用区域的最佳实践

创建 DNS 记录

如需添加将 *.<clusterHostname> 映射到您在创建 Private Service Connect 端点时预留的 IP 地址的记录,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。

    进入“Cloud DNS 区域”

  2. 点击要在其中添加记录的托管区域的名称。

  3. 区域详情页面上,点击添加标准

  4. 创建记录集页面的 DNS 名称字段中,输入 *.<clusterHostname>

  5. IP 地址字段中,输入您在上一部分中为 Private Service Connect 端点预留的 IP 地址。

  6. 点击创建

  7. 您的 VPC 网络现在应已连接到工作站集群,您可以使用此网络连接到工作站。

在本地启用 DNS 解析

如需在工作站上使用基于浏览器的默认编辑器,请使用连接到 VPC 网络的计算机上的浏览器。您可以使用 Cloud VPNCloud Interconnect 从运行浏览器的外部网络连接到 VPC 网络。

如需从外部网络进行连接,您需要在外部网络中配置 DNS。与上述步骤类似,您可以为 clusterHostname 创建一个 DNS 区域,并添加一条将 *.<clusterHostname> 映射到您在创建 Private Service Connect 端点时预留的 IP 地址的记录。或者,您也可以设置 DNS 转发区域或 DNS 服务器政策,以允许在您的本地环境和 Google Cloud 环境之间查找 DNS 名称。

您可能还需要将 *cloudworkstations.dev 添加到本地基础架构的许可名单中。

后续步骤