关于服务连接自动化
服务连接自动化可让服务使用方自动部署与托管式服务的连接。
假设数据库管理员部署了数据库实例,并且想要让服务使用方通过 Private Service Connect 端点访问该数据库。数据库管理员可能没有所需的 Identity and Access Management (IAM) 凭据,或者不了解如何部署网络资源。
如果托管式服务支持服务连接自动化,则可以将服务实例配置和网络配置委托给相应的管理员:
服务实例管理员可以控制哪些网络可以访问其服务。
网络管理员可以控制他们想要允许连接到哪些服务。
当这些配置匹配时,服务连接自动化会在相应网络中创建端点,以提供与托管式服务实例的连接。
服务连接自动化概览
以下部分介绍了使用服务连接自动化的单个 VPC 网络中的基本配置。如需了解其他配置,请参阅共享 VPC 和具有自定义服务实例范围的 Google 服务。
部署支持服务连接自动化的托管式服务实例涉及以下步骤:
网络管理员为其 VPC 网络创建服务连接政策。
服务连接政策引用一个服务类,该服务类是标识特定提供方服务的全局唯一资源。单个服务连接政策的范围限定为单个服务类和单个使用方 VPC 网络,并在该范围内委托配置连接的权限。
服务实例管理员使用服务的管理 API 或界面来部署托管式服务实例。服务实例配置用于指定哪些网络可以通过服务连接自动化来访问服务。
服务连接自动化在使用方 VPC 网络中创建端点。此端点可用于向服务实例发送请求。
提供方配置
以下部分介绍了服务提供方用于配置服务连接自动化的资源。
服务类
服务类是代管式服务类型的全局唯一表示形式。每个提供方独占式地拥有其服务类。使用方在其服务连接政策中引用服务类,以授权部署并将连接委托给提供方。
您只能为具有服务类的服务创建服务连接政策。
服务类适用于 Google 发布的服务。服务类目前还处于有限预览版阶段,适用于第三方服务和自行托管的内部托管式服务。如需了解详情,请参阅支持的服务。
服务连接映射
服务连接映射是提供方管理的资源,用于存储在使用方 VPC 网络与提供方管理的服务实例之间授权和建立 Private Service Connect 连接的详细信息。此映射定义了提供方服务实例(由服务连接表示)与已获授权连接到服务实例的使用方项目和 VPC 网络之间的允许关系。
授权模型
通过服务连接政策,使用方可以将连接部署委托给托管式服务。服务提供方没有使用方项目的直接访问权限或 IAM 权限。提供方在自己的项目中配置服务连接映射。
在创建或更新服务连接映射时(通常是为了响应使用方服务管理员对托管式服务的管理 API 或界面的请求),服务连接自动化会执行一系列授权检查。如果所有检查都通过,系统会按照请求中指定的方式创建 Private Service Connect 端点。
网络配置(服务连接政策):
- 网络授权。使用方 VPC 网络必须具有有效的服务连接政策,以授权请求指定的 VPC 网络、区域和服务类。此检查有助于确保对 VPC 网络具有 IAM 权限的使用方网络管理员可明确委托为指定的服务类型创建 Private Service Connect 端点的权限。
- 服务实例范围。如果托管式服务实例是 Google 服务,并且服务连接政策指定了自定义服务实例范围 (
custom-resource-hierarchy-levels
),则服务连接自动化会检查提供的 Resource Manager 节点列表 (--allowed-google-producers-resource-hierarchy-level
)。服务实例管理员在托管式服务的界面或 API 中为部署和管理服务实例而指定的项目必须在此列表定义的允许范围内。该范围可以是组织、文件夹和项目的混合。 - 端点项目验证。在其中创建连接政策的项目必须与要在其中创建端点的 VPC 网络相关联。该项目必须包含 VPC 网络,或者必须是关联到共享 VPC 网络的服务项目。
服务实例配置:
服务管理员 IAM 授权。使用方服务管理员必须拥有创建或更新提供方服务实例所需的 IAM 权限。这些权限因所部署的服务而异。
服务实例管理员授权。在服务的管理 API 中,创建服务实例的服务实例管理员必须已将该实例配置为允许来自请求连接的 VPC 网络的连接。
提供方配置:
- 提供方 IAM 权限。创建或更新服务连接映射的提供方服务管理员必须拥有关联服务类的 IAM 权限。此检查有助于防止错误地代表公共服务类。
如果满足每个条件,则 Network Connectivity 服务账号会在已获授权的网络中创建请求的端点。Network Connectivity 服务账号是一个服务代理。
共享 VPC
服务连接自动化可用于在共享 VPC 网络中自动创建 Private Service Connect 端点。由于端点配置了共享 VPC 网络中的 IP 地址,因此可以通过宿主项目和所有关联的服务项目访问该端点。
如需创建下图所示的配置,请完成以下任务:
网络管理员为
project1
宿主项目中的vpc1
网络创建服务连接政策,并允许连接到使用google-cloud-sql
服务类的服务实例。系统会从endpoint-subnet
子网分配端点 IP 地址。服务实例管理员部署两个托管式服务实例:
service-project-test
项目中的db-test
和service-project-prod
项目中的db-prod
。管理员配置服务实例,以便服务连接自动化在project1
的网络vpc1
中部署连接到服务实例的端点。由于授权检查全部通过,服务连接自动化会创建两个连接到
endpoint-subnet
的端点,每个服务实例一个。连接到vm-subnet
子网的所有虚拟机都可以访问端点,因为它们与端点连接到同一共享 VPC 网络。
具有自定义服务实例范围的 Google 服务
默认情况下,服务连接自动化要求服务实例和连接到服务实例的端点必须位于同一项目中(对于共享 VPC,位于关联的项目中)。对于受支持的 Google 服务,服务实例和连接端点可以位于不同的项目或组织中。
如需创建下图所示的配置,请完成以下任务:
vpc-1
、vpc-2
和vpc-3
的网络管理员在各自的 VPC 网络中创建服务连接政策。它们允许连接到使用google-cloud-sql
服务类且部署在组织org-1
的项目project-1
中的服务实例。服务实例管理员使用服务的管理 API 或界面在
project-1
中部署托管式服务实例db-1
。管理员配置服务实例,以便服务连接自动化在vpc-1
和vpc-2
中部署连接到db-1
的端点。对于
vpc-1
和vpc-2
,授权检查均通过,并且服务连接自动化在每个网络中创建一个端点。这些网络中的虚拟机可以通过端点向服务实例发送流量。但是,系统不会在
vpc-3
中创建端点,因为该网络未在db-1
服务实例配置中配置为自动连接。如果
vpc-3
需要访问db-1
服务实例,网络管理员可以与数据库管理员联系,并让他们将vpc-3
添加到db-1
的连接配置中。
支持的服务
以下 Google 服务支持服务连接自动化。
如需确定第三方托管式服务是否支持服务连接政策,请与服务提供商联系。如果某个服务支持服务连接政策,该服务提供商可以为您提供关联的服务类。
提供方端自动化资源目前处于有限预览版阶段。如果您希望为自己的托管式服务自动执行使用方连接,请与您的 Google Cloud销售代表联系。