创建服务边界

本页面介绍如何创建服务边界。

准备工作

创建服务边界

本部分介绍如何创建服务边界,包括如何在其中包含项目以及保护服务。

创建服务边界时,您可以选择允许从边界外访问受保护的服务,并为边界内的其他服务和用户指定可以访问的服务。如果您愿意,也可以在创建边界后配置这些设置。

创建了服务边界后,更改最多可能需要 30 分钟才能传播完毕并生效。

控制台

  1. 在 Google Cloud Console 导航菜单中,点击安全,然后点击 VPC Service Controls

    转到 VPC Service Controls 页面

  2. 如果收到提示,请选择您的组织。不能在项目级创建边界。

  3. VPC Service Controls 页面顶部,选择一种边界模式。默认情况下选中的是强制模式。如果要创建试运行边界,请点击试运行模式

    强制实施边界会主动阻止对受保护服务的访问。试运行边界会记录对边界的违规,虽然看起来服务像是受到保护,但实际上并不会阻止对这些服务的访问。如需详细了解强制模式和试运行模式,请参阅服务边界

  4. 点击新建边界

  5. 新建 VPC 服务边界页面的边界名称框中,为边界输入一个名称。

  6. 选择您想要在边界内保护的项目:

    1. 要保护的项目下,点击添加项目

    2. 要向边界添加项目,请在添加项目窗口中选中相应项目的复选框。

    3. 点击添加 n 个项目 (Add n Projects),其中 n 是您在上一步中选中的项目数量。

  7. 选择您想要在边界内保护的服务:

    1. 要保护的服务下,点击添加服务

    2. 要保护边界内的服务,请在指定要限制的服务窗口中,选中服务对应的复选框。

    3. 点击添加 n 个服务 (Add n Services),其中 n 是您在上一步中选中的服务数量。

  8. (可选)如果要定义在边界内可访问的服务(例如,可供您之前选中的某个项目托管的 VPC 网络中的虚拟机访问),请执行以下操作:

    1. VPC 可访问服务下,点击添加 VPC 受限的服务。只有在使用边界保护服务的情况下,才能将该服务设为可访问。

      您还可以在创建边界后添加可访问的服务。

    2. 指定要限制的服务窗口中,每项服务各成一行,请从中选择您要在边界内访问的服务对应的复选框。

    3. 点击添加 n 个服务 (Add n Services),其中 n 是您在上一步中选中的服务数量。

  9. (可选)如果要允许从边界外向受保护的服务发出的请求,请执行以下操作:

    1. 点击选择访问权限级别框。

      您也可以在创建边界后添加访问权限级别。

    2. 选择与要应用于服务边界的访问权限级别对应的复选框。

  10. 点击保存按钮。

gcloud

如需创建新边界,请使用 create 命令。

gcloud [beta] access-context-manager perimeters [dry-run] create NAME \
  --title=TITLE \
  --resources=PROJECTS \
  --restricted-services=RESTRICTED-SERVICES \
  [--levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--add-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

其中:

  • 仅在您要创建试运行模式的边界时,才需要包含 betadry-run。例如:gcloud beta access-context-manager perimeters dry-run create ...

  • NAME 是边界的名称。

  • TITLE 是直观易懂的边界标题。

  • PROJECTS 是一个或多个项目编号的列表(以英文逗号分隔)。例如 projects/12345projects/12345,projects/67890。仅支持项目编号。不能使用项目名称或项目 ID。

  • RESTRICTED-SERVICES 是一个或多个服务的列表(以英文逗号分隔)。例如 storage.googleapis.comstorage.googleapis.com,bigquery.googleapis.com

  • POLICY_NAME 是您的组织的访问权限政策的数字名称。例如 330193482019。只有在您尚未设置默认访问权限政策时,才需要包括政策名称。

其他选项:

  • 只有在创建边界时要添加访问权限级别时,才需要包含 --levelsLEVELS 是您要应用到服务边界的一个或多个访问权限级别的列表(以英文逗号分隔)。

    您也可以在创建边界后添加访问权限级别

  • 只有在创建边界时要添加 VPC 可访问服务时,才需要包含 --enable-vpc-accessible-services--add-vpc-allowed-servicesACCESSIBLE-SERVICES 是您要允许边界内网络访问的一个或多个服务的列表(以英文逗号分隔)。对此列表中未包含的任何服务的访问都将被阻止。

    只有在配置边界时对一项服务实施了保护的情况下,您才能将该服务设置为可访问。

    要快速添加受边界保护的所有服务,请在 ACCESSIBLE-SERVICES 列表中指定 RESTRICTED-SERVICES。例如 --add-vpc-allowed-services=RESTRICTED-SERVICES

    您也可以在创建边界后定义 VPC 可访问服务

例如,以下命令会创建一个名为 ProdPerimeter 的新边界,其中包含项目 example-projectexample-project2,并限制 Cloud Storage API 和 BigQuery API。

gcloud access-context-manager perimeters \
  create ProdPerimeter --title="Production Perimeter" \
  --resources=projects/12345,projects/67890 \
  --restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --policy=330193482019

API

要创建服务边界,请调用 accessPolicies.servicePerimeters.create

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

其中:

  • POLICY_NAME 是您的组织的访问权限政策的数字名称。例如 330193482019

请求正文

请求正文必须包含用于定义服务边界的 ServicePerimeter 资源。

对于 ServicePerimeter 资源,请为 perimeterType 指定 PERIMETER_TYPE_REGULAR

试运行模式

要创建的边界必须添加为 spec,并且将 useExplicitDryRunSpec 设为 true。

响应正文

如果成功,调用的响应正文将包含一个 Operation 资源,用于提供与 POST 操作相关的详细信息。

后续步骤