在服务边界中配置 Private Service Connect 端点

本页介绍了如何在服务边界中配置 Private Service Connect 端点。

Private Service Connect 是一项Google Cloud 网络功能,可让您通过端点从虚拟私有云网络以私密方式访问托管式服务。借助 VPC Service Controls,您可以在入站和出站规则中指定 Private Service Connect 端点,从而让独立公司能够使用内部 IP 地址进行通信。

准备工作

在入站流量规则中配置端点

控制台

在 Google Cloud 控制台中创建更新边界时,您可以将入站流量规则配置为包含转发规则。

  1. 在 Google Cloud 控制台导航菜单中,依次点击安全 > VPC Service Controls

    转到 VPC Service Controls

  2. 如需创建新边界,请点击新边界

    如需修改现有边界,请选择相应边界,然后点击修改

  3. 选择入站流量政策

  4. 入站流量规则窗格中,点击添加入站流量规则

  5. 来源部分,从来源列表中选择选择来源

  6. 点击 Private Service Connect 端点

  7. 点击添加端点

  8. 添加 Private Service Connect 端点窗格中,选择以下选项之一:

    • 搜索 PSC 端点:此选项可让您从列表中搜索并选择所需的 Private Service Connect 端点。

    • 手动输入 PSC 端点 ID:此选项可让您手动输入 Private Service Connect 端点。如需指定 Private Service Connect 端点,请使用以下格式://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID,其中 FORWARDING_RULE_ID 是端点转发规则的 ID。

  9. 点击添加端点

  10. 点击完成

  11. 点击创建保存

如需了解其他入站流量规则属性,请参阅入站流量规则参考

gcloud

您可以使用 JSON 文件或 YAML 文件配置入站流量规则以包含转发规则。以下示例使用 YAML 格式:

- ingressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
    *OR*
    - accessLevel: ACCESS_LEVEL
    *OR*
    - pscEndpoint:
        forwardingRule: PSC_ENDPOINT
  ingressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
      *OR*
      - permission: PERMISSION
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER

PSC_ENDPOINT 替换为您要允许访问安全边界内资源的 Private Service Connect 端点。如需指定 Private Service Connect 端点,请使用以下格式://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID,其中 FORWARDING_RULE_ID 是端点的转发规则的 ID。

如需了解其他入站流量规则属性,请参阅入站流量规则参考

使用 Private Service Connect 端点配置入站流量规则文件后,您可以在创建或更新边界时使用该规则。

如需在创建安全边界时配置规则,请运行以下命令:

gcloud access-context-manager perimeters create NAME \
--title=TITLE \
--resources=RESOURCES \
--restricted-services=RESTRICTED_SERVICES \
--ingress-policies=INGRESS_FILENAME.yaml \
--policy=POLICY_NAME

INGRESS_FILENAME 替换为入站规则文件的路径。

如需了解详情,请参阅创建服务边界

如需在更新安全边界时配置规则,请运行以下命令:

gcloud access-context-manager perimeters update PERIMETER_ID \
--set-ingress-policies=INGRESS_FILENAME.yaml

替换以下内容:

  • PERIMETER_ID:您要更新的服务边界的 ID。
  • INGRESS_FILENAME:入站流量规则文件的路径。

如需了解详情,请参阅更新服务边界的入站流量和出站流量政策

在出站流量规则中配置端点

控制台

您可以在 Google Cloud 控制台中创建更新边界时,将出站流量规则配置为包含转发规则。

  1. 在 Google Cloud 控制台导航菜单中,依次点击安全 > VPC Service Controls

    转到 VPC Service Controls

  2. 如需创建新边界,请点击新边界

    如需修改现有边界,请选择相应边界,然后点击修改

  3. 选择出站流量政策

  4. 出站流量规则窗格中,点击添加出站流量规则

  5. 来源部分,从来源列表中选择选择来源

  6. 点击 Private Service Connect 端点

  7. 点击添加端点

  8. 添加 Private Service Connect 端点窗格中,选择以下选项之一:

    • 搜索 PSC 端点:此选项可让您从列表中搜索并选择所需的 Private Service Connect 端点。

    • 手动输入 PSC 端点 ID:此选项可让您手动输入 Private Service Connect 端点。如需指定 Private Service Connect 端点,请使用以下格式://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID,其中 FORWARDING_RULE_ID 是端点转发规则的 ID。

  9. 点击添加端点

  10. 点击完成

  11. 点击创建保存

如需了解其他出站流量规则属性,请参阅出站流量规则参考

gcloud

您可以使用 JSON 文件或 YAML 文件配置出站规则以包含转发规则。以下示例使用 YAML 格式:

- egressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
      *OR*
      - permission: PERMISSION
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER
    *OR*
    externalResources:
    - EXTERNAL_RESOURCE_PATH
  egressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
    *OR*
    - accessLevel: ACCESS_LEVEL
    *OR*
    - pscEndpoint:
        forwardingRule: PSC_ENDPOINT
    sourceRestriction: RESTRICTION_STATUS

PSC_ENDPOINT 替换为您希望允许边界内的资源通过其访问外部资源的 Private Service Connect 端点。如需指定 Private Service Connect 端点,请使用以下格式://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID,其中 FORWARDING_RULE_ID 是端点的转发规则的 ID。

如需了解其他出站流量规则属性,请参阅出站流量规则参考

使用 Private Service Connect 端点配置出站流量规则文件后,您可以在创建或更新边界时使用该规则。

如需在创建安全边界时配置规则,请运行以下命令:

gcloud access-context-manager perimeters create NAME \
--title=TITLE \
--resources=RESOURCES \
--restricted-services=RESTRICTED_SERVICES \
--egress-policies=EGRESS_FILENAME.yaml \
--policy=POLICY_NAME

EGRESS_FILENAME 替换为出站规则文件的路径。

如需了解详情,请参阅创建服务边界

如需在更新安全边界时配置规则,请运行以下命令:

gcloud access-context-manager perimeters update PERIMETER_ID \
--set-egress-policies=EGRESS_FILENAME.yaml

替换以下内容:

  • PERIMETER_ID:您要更新的服务边界的 ID。
  • EGRESS_FILENAME:出站流量规则文件的路径。

如需了解详情,请参阅更新服务边界的入站流量和出站流量政策

排查访问被拒问题

如果 Private Service Connect 端点导致访问被拒绝,问题排查结果页面还会显示以下信息:

  • PSC 转发规则 ID:请求访问的转发规则的端点 ID。

  • PSC 转发规则状态:请求访问权限的转发规则的状态。

  • 入站和出站部分:违规分析器会根据所有入站和出站规则评估 Private Service Connect 端点,并在入站出站部分显示结果。

如需了解详情,请参阅在违规分析器中诊断访问遭拒问题

限制

  • 如需了解适用于服务边界中 Private Service Connect 端点的配额和限制,请参阅配额和限制

  • 您可以在入站和出站规则中使用 Private Service Connect 端点,以仅访问支持的服务

  • VPC Service Controls 仅支持入站和出站规则中新创建的 Private Service Connect 端点。您无法使用现有的旧版 Private Service Connect 端点;必须重新创建这些端点才能与 VPC Service Controls 搭配使用。

后续步骤