配置 VPC Service Controls 和专用集群

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

VPC Service Controls

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

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

  • 为了帮助保护 Cloud Workstations API,您必须限制在服务边界内使用 Compute Engine API。
  • 确保 Google Cloud Storage API、Google Container Registry API 和 Artifact Registry API 在服务边界内 可通过 VPC 访问。将映像拉取到工作站上需要此权限。我们还建议您允许 Cloud Logging API 和 Cloud Error Reporting API 在服务边界内通过 VPC 进行访问,但这并不是使用 Cloud Workstations 的必要条件。

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

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

架构

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

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

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

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

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

图 1. 专用集群

准备工作

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

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. 启用 Cloud Workstations API。

    启用 API

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

    转到 IAM

  8. 如果强制执行 constraints/compute.trustedimageProjects 组织政策限制条件,您必须将映像来自的项目列入许可名单。
    • 如果没有嵌套虚拟化,您必须向您的项目授予使用 cos-cloud 项目中的 Compute Engine 虚拟机映像的权限。
    • 使用嵌套虚拟化时,您必须向您的项目授予使用 ubuntu-os-gke-cloud 项目中的 Compute Engine 虚拟机映像的权限。

    如需了解详情,请参阅设置映像访问权限限制

  9. 可选:启用 Container File System API 以加快工作站的启动速度。

    启用 Container File System API

    如需了解详情,请参阅通过映像流式传输缩短工作站启动时间

Create a private cluster(创建专用集群)

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

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

    前往 Cloud Workstations

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

  3. 点击创建

  4. 输入名称,并为您的工作站集群选择一个区域

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

  6. 选择网络子网

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

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

  9. 点击创建

启用专用集群连接

客户端无法从公共互联网连接到专用工作站集群中的工作站。客户端必须位于使用 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 字段。

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

  6. 为该端点选择网络,然后选择一个子网。 此网络应该是您要用于连接到工作站的网络。

  7. 为端点选择 IP 地址

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

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

  9. 点击添加端点

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

创建专用 DNS 区域

请按照以下步骤为此工作站集群创建专用 DNS 区域,并将 DNS 名称设置为“clusterHostname”。通过在控制台中导航到您的工作站集群,您可以找到该专用 DNS。

  1. 在 Google Cloud 控制台中,转到创建 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 添加到本地基础架构的许可名单中。

后续步骤