为 Integration Connectors 设置 VPC Service Controls

通过 VPC Service Controls,您可以为集成连接器 Google Cloud 服务定义安全边界。借助服务的安全边界,您可以将数据限制在 VPC Service Controls 边界内并降低数据渗漏风险。如果您尚不熟悉 VPC Service Controls,建议您浏览以下信息:

本文档介绍了如何使用 VPC Service Controls 边界限制对 Integration Connectors 服务 (connectors.googleapis.com) 的访问权限。设置边界后,您可以配置政策来确定哪些其他 Google Cloud 服务或用户可以访问 connectors.googleapis.com 服务。

注意事项

  • 如果您的连接要连接到 Google Cloud 资源,则必须可从 VPC Service Controls 边界内访问该资源。
  • 如果您已与公共端点建立连接,请在设置 VPC Service Controls 边界之前,确保此类连接使用 PSC (Private Service Connect) 连接来连接后端系统。如果没有 PSC 连接,设置 VPC Service Controls 边界后,与公共端点的现有连接将失败。
  • 如果您的连接要连接到非 Google Cloud 资源,则连接的目标应为 PSC 连接。在没有 PSC 属性的情况下创建的连接将失败。
  • 如果您要为 Google Cloud 项目设置 VPC Service Controls 边界,则无法为该项目使用事件订阅功能

准备工作

确保您拥有配置 VPC Service Controls 边界所需的权限。如需查看配置 VPC Service Controls 所需的 IAM 角色列表,请参阅 VPC Service Controls 文档中的使用 IAM 进行访问权限控制

创建 VPC Service Controls 边界

如需创建 VPC Service Controls 边界,您可以使用 Google Cloud consolegcloud 命令或 accessPolicies.servicePerimeters.create API。如需了解详情,请参阅创建服务边界

以下步骤显示了如何使用 gcloud 命令创建启用了用户访问权限的 VPC Service Controls 边界。

  1. 创建一个 access.yaml 文件,其中包含有权访问边界的用户的详细信息。例如:
    - members:
        - user:USER_EMAIL
    
  2. 使用以下命令获取您的组织的访问权限政策 ID:
  3. gcloud access-context-manager policies list --organization=ORGANIZATION_ID

    此命令会列出组织的所有政策。从列表中选择要为其创建 VPC Service Controls 边界的政策。

    您可以使用 Google Cloud 控制台查看组织的资源 ID。如需了解详情,请参阅获取组织资源 ID

  4. 为用户创建访问权限级别。
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
    --title "CUSTOM_TITLE" \
    --basic-level-spec access.yaml \
    --policy=POLICY_ID

    在此命令中,POLICY_ID 是您在上一步中获得的值。

  5. 在 Google Cloud 项目的全局设置中,将 vpcsc 属性的值设置为 true
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": true}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    此命令会返回一个操作 ID,并启动一项长时间运行的操作 (LRO),该操作可能需要一些时间才能完成。等待 LRO 完成。您可以使用以下命令跟踪操作的进度:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  6. 创建 VPC Service Controls 边界并向用户提供访问权限。
    gcloud access-context-manager perimeters create PERIMETER_NAME \
    --title="PERIMETER_TITLE" \
    --resources=projects/PROJECT_ID \
    --restricted-services=connectors.googleapis.com \
    --access_levels=ACCESS_LEVEL_NAME
    

    此命令需要一些时间才能完成,在此期间,您可以在新的终端中运行其他任务。

    如果要更新访问权限级别,并将 connectors.googleapis.com 服务添加到现有边界,请运行以下命令:
    gcloud access-context-manager perimeters update PERIMETER_NAME \
    --add-restricted-services="connectors.googleapis.com" \
    --add-access-levels=ACCESS_LEVEL_NAME \
    --policy=POLICY_ID

验证边界

如需验证边界,请使用 gcloud access-context-manager perimeters describe PERIMETER_NAME 命令。例如:

gcloud access-context-manager perimeters describe PERIMETER_NAME

如需了解详情,请参阅管理服务边界

从 VPC Service Controls 边界中移除项目

如需从 VPC Service Controls 边界中移除 Google Cloud 项目,请执行以下步骤:

  1. 在 Google Cloud 项目的全局设置中,将 vpcsc 属性的值设置为 false
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": false}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    此命令会返回一个操作 ID,并启动一项长时间运行的操作 (LRO),该操作可能需要一些时间才能完成。等待 LRO 完成。您可以使用以下命令跟踪操作的进度:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  2. 从 VPC Service Controls 边界中移除您的项目。
    gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME
    

后续步骤

了解 VPC Service Controls 如何保护您的数据。