为 Integration Connectors 设置 VPC Service Controls
借助 VPC Service Controls 集成连接器 Google Cloud 服务。借助服务的安全边界,您可以将数据限制在 VPC Service Controls 边界内并降低数据渗漏风险。如果您尚不熟悉 VPC Service Controls,建议您浏览以下信息:
本文档介绍了如何限制对 Integration Connectors 服务 (connectors.googleapis.com
) 的访问权限
使用 VPC Service Controls 边界设置好边界后
您可以配置政策
Google Cloud 服务或用户可以访问 connectors.googleapis.com
服务。
注意事项
- 如果您的连接连接到 Google Cloud 资源,则必须能够从 VPC Service Controls 边界内访问该资源。
- 如果您已连接到某个公共端点,请先设置 VPC Service Controls 边界,请确保此类连接使用 PSC (Private Service Connect) 连接后端系统。如果没有 PSC 连接,现有连接 将失败。
- 如果您的连接要连接到非 Google Cloud 资源, 应为 PSC 连接。在没有 PSC 连接的情况下创建的连接会失败。
- 如果要为 Google Cloud 项目设置 VPC Service Controls 边界,您不能使用 事件订阅功能 项目级别
准备工作
确保您拥有配置 VPC Service Controls 边界所需的权限。 如需查看配置 VPC Service Controls 所需的 IAM 角色列表, 请参阅使用 IAM 进行访问权限控制 VPC Service Controls 文档。创建 VPC Service Controls 边界
如需创建 VPC Service Controls 边界,您可以使用 Google Cloud console
、
或 gcloud
命令或 accessPolicies.servicePerimeters.create API。
如需了解详情,请参阅创建服务边界。
以下步骤展示了如何使用 gcloud
命令创建启用了用户访问权限的 VPC Service Controls 边界。
- 创建一个
access.yaml
文件,其中包含获得许可的用户的详细信息 访问边界的权限。例如:- members: - user:USER_EMAIL
- 使用以下命令获取组织的访问权限政策 ID:
- 为用户创建访问权限级别。
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title "CUSTOM_TITLE" \ --basic-level-spec access.yaml \ --policy=POLICY_ID
在此命令中,POLICY_ID 是您在上一步中获得的值。
- 在 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
- 创建 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 policies list --organization=ORGANIZATION_ID
此命令会列出组织的所有政策。从列表中选择 要为其创建 VPC Service Controls 边界的政策。
您可以使用 Google Cloud 控制台查看组织的资源 ID。如需更多信息 请参阅获取组织资源 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 项目,请执行以下步骤:
- 在 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
- 从 VPC Service Controls 边界中移除您的项目。
gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME