管理服务边界

本页面介绍了如何在 VPC Service Controls 中管理服务边界。如需详细了解如何创建新的服务边界,请参阅创建服务边界

本页面包括以下部分:

准备工作

列出和描述服务边界

列出组织中的所有服务边界:

Console

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

    转到 VPC Service Controls 页面

  2. VPC Service Controls 页面的表中,点击要查看的服务边界的名称。

gcloud

要列出您组织的服务边界,请使用 list 命令:

gcloud access-context-manager perimeters list \
  [--policy=POLICY_NAME]

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

您应该会看到您组织的边界列表。例如:

NAME           TITLE
ProdPerimeter  Production Perimeter

要查看某个服务边界的详细信息,请使用 describe 命令:

gcloud access-context-manager perimeters \
  describe PERIMETER_NAME \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是您要获取其详细信息的服务边界的名称。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

您应该会看到该边界的详细信息。例如:

accessLevels:
- accessPolicies/626111171578/accessLevels/corpAccess
resources:
- projects/111584792408
restrictedServices:
- bigquery.googleapis.com
- storage.googleapis.com
title: Production Perimeter

列出服务边界(已设置格式)

使用 gcloud 命令行工具,您可以获取 YAML 或 JSON 格式的服务边界列表。

要获取设置了格式的边界列表,请使用 list 命令。

gcloud access-context-manager perimeters list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

其中:

  • FORMAT 是以下任一值:

    • list(YAML 格式)

    • json(JSON 格式)

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

YAML 输出结果如下所示:

- name: accessPolicies/165717541651/servicePerimeters/On_Prem
  status: {'resources': ['projects/167410821371'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com']}
  title: On Prem
- name: accessPolicies/165717541651/servicePerimeters/Private
  spec: {'resources': ['projects/136109111311'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com', 'logging.googleapis.com']}
  status: {'resources': ['projects/136109111311', 'projects/401921913171'], 'restrictedServices': ['bigquery.googleapis.com']}
  title: Private
  useExplicitDryRunSpec: True
- name: accessPolicies/165717541651/servicePerimeters/OnpremBridge
  perimeterType: PERIMETER_TYPE_BRIDGE
  status: {'resources': ['projects/167410821371']}
  title: OnpremBridge

JSON 输出结果如下所示:

[
  {
    "name": "accessPolicies/165717541651/servicePerimeters/On_Prem",
    "status": {
      "resources": [
        "projects/167410821371"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com",
        "storage.googleapis.com"
      ]
    },
    "title": "On Prem"
  },
  {
    "name": "accessPolicies/165717541651/servicePerimeters/Private",
    "spec": {
      "resources": [
        "projects/136109111311"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com",
        "storage.googleapis.com",
        "logging.googleapis.com"
      ]
    },
    "status": {
      "resources": [
        "projects/136109111311",
        "projects/401921913171"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com"
      ]
    },
    "title": "Private",
    "useExplicitDryRunSpec": true
  },
  {
    "name": "accessPolicies/165717541651/servicePerimeters/OnpremBridge",
    "perimeterType": "PERIMETER_TYPE_BRIDGE",
    "status": {
      "resources": [
        "projects/167410821371"
      ]
    },
    "title": "OnpremBridge"
  }
]

更新服务边界

您可以在服务边界中添加新的 Google Cloud 项目或移除项目。您可以更改受限 Google Cloud 服务的列表。还可以更改服务边界的标题和说明。要执行这些操作,您需要提供完整的资源列表。

本部分介绍如何更新单个服务边界。要在一次操作中更新组织的所有服务边界,请参阅对服务边界进行批量更改

更新了服务边界后,更改会在 30 分钟内传播和生效。

Console

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

    转到 VPC Service Controls 页面

  2. VPC Service Controls 页面的表中,点击要修改的服务边界的名称。

  3. 修改 VPC 服务边界页面上,更新服务边界。

  4. 点击保存

gcloud

要向边界添加新项目,请使用 update 命令并指定要添加的资源:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --add-resources=PROJECTS \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是您要获取其详细信息的服务边界的名称。

  • PROJECTS 是包含一个或多个项目 ID 的列表(以英文逗号分隔)。例如 projects/100712projects/100712,projects/233130

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

如需更新受限服务的列表,请使用 update 命令并以英文逗号分隔的列表形式指定要添加的服务:

gcloud access-context-manager perimeters update PERIMETER_ID \
  --add-restricted-services=SERVICES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是您要获取其详细信息的服务边界的名称。

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

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

向现有边界添加访问权限级别

创建访问权限级别后,您可以将其应用于服务边界以控制访问。

更新了服务边界后,更改会在 30 分钟内传播和生效。

Console

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

    转到 VPC Service Controls 页面

  2. VPC Service Controls 页面的表中,点击要修改的服务边界的名称。

  3. 修改 VPC 服务边界页面上,点击选择访问权限级别框。

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

  5. 点击保存

gcloud

要向现有服务边界添加访问权限级别,请使用 update 命令:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --add-access-levels=LEVEL_NAME \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • LEVEL_NAME 是您要添加到边界的访问权限级别的名称。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

删除服务边界

删除服务边界时,与该边界关联的安全控制不再适用于关联的 Google Cloud 项目。对成员 Google Cloud 项目或关联资源没有任何其他影响。

Console

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

    转到 VPC Service Controls 页面

  2. VPC Service Controls 页面上,在要删除的边界的表行中,点击 按钮。

gcloud

要删除服务边界,请使用 delete 命令:

gcloud access-context-manager perimeters delete PERIMETER_NAME \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

使用 VPC 可访问服务限制对边界内服务的访问权限

本部分介绍如何启用、添加、移除和停用 VPC 可访问服务。

VPC 可访问服务功能用于限制可从服务边界内的网络端点访问的一组服务。VPC 可访问服务只能添加到服务边界,而不能添加到边界网桥。

如需详细了解 VPC 可访问服务功能,请参阅 VPC 可访问服务

启用 VPC 可访问服务

要为服务边界启用 VPC 可访问服务,请使用以下命令:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --enable-vpc-accessible-services \
  --add-vpc-allowed-services=SERVICES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • SERVICES 是一个逗号分隔列表,其中列出了您要允许边界内网络访问的一个或多个服务。对此列表中未包含的任何服务的访问都将被阻止。

    要快速添加受该边界保护的服务,请将 RESTRICTED-SERVICES 添加到 SERVICES 列表中。除了 RESTRICTED-SERVICES,您还可以添加其他服务。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

例如,如果您希望边界中的 VPC 网络仅可访问 Logging 和 Cloud Storage 服务,则可以使用以下命令:

gcloud access-context-manager perimeters update example_perimeter \
  --enable-vpc-accessible-services \
  --add-vpc-allowed-services=RESTRICTED-SERVICES,logging.googleapis.com,storage.googleapis.com \
  --policy=11271009391

将服务添加到 VPC 可访问服务

要为边界的 VPC 可访问服务添加其他服务,请使用以下命令:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --add-vpc-allowed-services=SERVICES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • SERVICES 是一个逗号分隔列表,其中列出了您要允许边界内网络访问的一个或多个服务。

    要快速添加受该边界保护的服务,请将 RESTRICTED-SERVICES 添加到 SERVICES 列表中。除了 RESTRICTED-SERVICES,您还可以添加独立的服务。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

例如,如果您已启用 VPC 可访问服务,并且希望边界中的 VPC 网络也有权访问 Pub/Sub 服务,则可以使用以下命令:

gcloud access-context-manager perimeters update example_perimeter \
  --add-vpc-allowed-services=RESTRICTED-SERVICES,pubsub.googleapis.com \
  --policy=11271009391

从 VPC 可访问服务中移除服务

要从服务边界的 VPC 可访问服务中移除服务,请使用以下命令:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --remove-vpc-allowed-services=SERVICES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • SERVICES 是一个逗号分隔列表,其中列出了您要从服务边界内的网络允许访问的服务列表中移除的一个或多个服务。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

例如,如果您已启用 VPC 可访问服务,并且不再希望边界中的 VPC 网络访问 Cloud Storage 服务,则可以使用以下命令:

gcloud access-context-manager perimeters update example_perimeter \
  --remove-vpc-allowed-services=storage.googleapis.com \
  --policy=11271009391

停用 VPC 可访问服务

要为服务边界停用 VPC 服务限制,请使用以下命令:

gcloud access-context-manager perimeters update PERIMETER_NAME \
  --no-enable-vpc-accessible-services \
  --clear-vpc-allowed-services \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是服务边界的名称。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

例如,要为 example_perimeter 停用 VPC 服务限制,您可以使用以下命令:

gcloud access-context-manager perimeters update example_perimeter \
  --no-enable-vpc-accessible-services \
  --clear-vpc-allowed-services \
  --policy=11271009391

VPC 可访问服务和 Access Context Manager API

Access Context Manager API 还可以用于管理 VPC 可访问服务。创建或修改服务边界时,请使用响应正文中的 ServicePerimeterConfig 对象来配置 VPC 可访问服务。