IBM Cloud Docs
创建专用路径服务

创建专用路径服务

作为服务提供者,您负责管理使用者帐户标识。 目前,不支持跟踪或验证帐户标识。 有关更多信息,请参阅 管理使用者帐户标识的责任

VPC 的专用路径服务使服务提供者能够为托管的 IBM Cloud 以及第三方服务和应用程序创建和管理专用连接。 你可以使用控制台、CLI、API 或 Terraform 创建私有路径服务。

准备工作

在创建专用路径服务之前,请查看以下先决条件:

  • 查看 专用路径服务限制 以了解已知限制。

  • 确保在所选 VPC 中有一个 VPC 和至少一个子网。 了解更多

  • 创建专用路径网络负载均衡器。 您可以在调配私有路径服务时创建负载平衡器,也可以使用 VPC 负载平衡器 控制台。

    负载平衡器和专用路径服务必须使用相同的 VPC 区域。

  • 您必须为您的服务选择一个 DNS FQDN 供消费者使用。 该域名配置在用户的私有 DNS 中,但您需要在公共 DNS 中证明 FQDN 的所有权。 这需要您与 DNS 提供商采取措施。 有关详细信息,请参阅 注册和验证服务端点(FQDN)的所有权

    如果您愿意使用“注册和验证服务端点所有权(FQDN)”中列出的一组有限的预定义域之一,则可以选择不执行此要求。

您可以使用控制台、CLI、API 或 Terraform 创建 IBM Cloud® Private Path 服务。

在控制台中创建专用路径服务

要使用 IBM Cloud 控制台创建专用路径服务,请执行以下步骤:

  1. 从浏览器打开 IBM Cloud 控制台 并登录账户。

  2. 选择导航菜单 菜单图标,然后单击基础设施 > 网络 > 专用路径服务

  3. 单击创建

  4. 查看核对表以获取重要信息。

  5. 在“位置”部分中,确保以下字段正确。 否则,请单击“编辑”图标 "编辑" 图标 以进行更新。

    • 地理位置: 要在其中创建专用路径服务的常规区域。
    • 区域:您要创建专用路径服务的区域。
  6. 在详细信息部分,请提供以下信息:

    • 名称: 输入专用路径服务的唯一标识,例如 my-privatepath-service
    • 资源组: 如果需要,请选择资源组。
    • 标记: (可选) 添加任何相关标记以帮助对专用路径服务进行分组。
    • 访问管理标记: (可选) 向资源添加访问管理标记以帮助组织访问控制关系。 访问管理标记唯一受支持的格式为 key:value。 有关更多信息,请参阅 使用标记控制对资源的访问
    • 虚拟私有云: 选择要在其中创建专用路径服务的 VPC。
  7. 在“专用路径”网络负载平衡器部分,为“专用路径”服务选择“专用路径”NLB,或单击“创建”创建一个。 要创建专用路径 NLB,请按照以下步骤操作:

    单击 下一步 以转至下一步,或者使用左侧的导航菜单返回到特定部分。

    1. 在“定义详细信息”部分,请提供以下信息:

      • 名称: 输入专用路径 NLB 的唯一标识,例如 my-privatepath-service
      • 资源组: 选择专用路径 NLB 的资源组。
      • 标记: (可选) 添加任何相关标记以帮助对专用路径 NLB 进行分组。
      • 访问管理标记: (可选) 向资源添加访问管理标记以帮助组织访问控制关系。 访问管理标记唯一受支持的格式为 key:value。 有关更多信息,请参阅 使用标记控制对资源的访问
      • 子网: 选择要在其中创建专用路径 NLB 的子网。
    2. 在“创建后端池”部分,可选择:

      • 名称: 输入专用路径 NLB 的唯一标识,例如 my-ppnlb

      • 选择方法,即负载均衡算法。 将显示以下选项。

        • 循环- 将请求依次转发给每个实例。 所有实例收到的客户机连接数大致相等。
        • 加权循环- 按照分配给每个实例的权重比例将请求转发给每个实例。 例如,如果您具有实例 A、B 和 C,其权重分别设置为 60、60 和 30,那么实例 A 和 B 收到的连接数相同,而实例 C 收到的连接数只有 A 和 B 的一半。

        在“运行状况检查”部分中:

        • 健康检查路径- 仅当您选择 HTTP 作为健康检查协议时,健康检查路径才适用。 健康检查路径指定负载平衡器用于向池中实例发送 HTTP 健康检查请求的 URL。 默认情况下,健康检查会发送到根路径 (/)。
        • 健康协议- 负载平衡器用于向池中实例发送健康检查消息的协议。
        • 健康端口- 负载平衡器发送健康检查请求的端口。 默认情况下,健康检查在向实例发送流量的同一端口上发送。
        • Interval (间隔 )- 两次连续健康检查尝试之间的间隔(以秒为单位)。 默认情况下,健康检查每 5 秒发送一次。
        • 超时- 系统等待健康检查请求响应的最长时间。 默认情况下,负载平衡器等待响应的时间为 2 秒。
        • 最大重试次数-在声明实例运行状况不佳之前,负载均衡器进行的最大运行状况检查尝试次数。 缺省情况下,两次运行状况检查失败后,即不会再认为实例运行状况正常。

        虽然负载平衡器会停止向不健康的实例发送连接,但它会继续监控这些实例的健康状况,如果发现它们再次恢复健康(也就是说,如果它们连续两次成功通过健康检查尝试),就会恢复它们的使用。

      如果池中的实例运行状况不佳,并且您认为应用程序正常工作,请检查运行状况协议和运行状况路径值。 此外,检查附加到实例的任何安全组,确保规则允许负载平衡器和实例之间的流量。

      • 单击保存。 如果要创建另一个后端池,请重复此步骤。
    3. 在“添加成员”部分,您可以选择填写以下信息,然后点击“添加”:

      • 后端池: 选择要在其中连接服务器的后端池。

      • 子网:在表格中搜索特定的子网,并勾选要连接的子网旁边的复选框。 在“端口”列中,输入您选择的每个子网的端口号。

      • 成员类型:将虚拟服务器实例或应用程序负载平衡器添加为成员。 对于虚拟服务器实例,请单独附加每种类型。

        如果将 ALB 作为成员目标附加到“私有路径”NLB 池,则无法将其他成员添加到该池。

    4. 在“添加前端侦听器”部分,选择要附加前端侦听器的后端池。 然后,选择侦听器端口值,然后单击 保存。 如果要创建另一个前端侦听器,请重复此步骤。

    5. 在“复审”部分中,确认您提交的信息是否正确。 查看订单摘要,然后单击创建

      创建私有路径 NLB 需要几分钟时间。 创建负载均衡器时,其状态将从表中的 创建 更改为 活动

  8. 在服务端点部分,单击创建。 为要连接“专用路径”服务的服务端点提供名称。 然后,验证 FQDN 域名的所有权并单击添加。 更多信息,请参阅 注册和验证服务端点(FQDN)的所有权

  9. 选择启用或禁用服务端点的区域亲和性。 启用区域亲缘关系后,端点将在创建连接后保持对区域的持久性。

  10. 在“帐户策略”部分中:

    • 缺省策略设置为复审并对每个入局连接请求进行分类。 您可以更改缺省策略以允许或拒绝所有请求而不进行复审。
    • 要建立不同于默认策略的账户策略,请单击“创建”。 提供要为其设置策略的账户 ID。 在账户策略选项中,选择“审查”、“允许”或“拒绝”。

    个人帐户策略优先于缺省策略。

  11. 查看摘要页面,然后单击“**创建 **”订购“专用通道”服务。

    供应完成时,“专用路径”服务状态指示 VPC 表的“专用路径”服务中的 Stable

从 CLI 创建专用路径服务

以下示例显示如何使用 CLI 来创建专用路径服务。

开始之前,请确保 设置 CLI 环境

要从 CLI 创建“专用路径”服务,请按照以下步骤操作:

  1. 输入以下命令:
ibmcloud is private-path-service-gateway-create
    [--load balancer LOAD_BALANCER]
    [--service-endpoints SERVICE_ENDPOINTS]
    [--default-access-policy | deny | permit | review]
    [--name NAME]
    [--zonal-affinity | true | false]
    [--output JSON] [-q, --quiet]

其中:

--load-balancer
表示此“专用路径”服务负载平衡器的 ID 或名称。
--service-endpoints
表示此专用路径服务的完全合格域名。 任何大写字母都将转换为小写形式。
--default-access-policy
表示对没有明确账户策略的账户绑定使用的策略。 denypermitreview 之一。(缺省值: deny)。
--name
表示此“专用路径”服务的名称。
--zonal-affinity
表示此“专用路径”服务是否具有区域亲和性。 其中一个: falsetrue
--output
指定输出格式,仅支持 JSON。 以下项之一:JSON
-q, --quiet
禁止详细输出。

命令示例

  • 创建具有许可策略和区域亲缘关系的基于策略的专用路径服务: ibmcloud is private-path-service-gateway-create --load-balancer my-cli-nlb --service-endpoints cli.domain.com --default-access-policy permit --name cli-ppsg-1 --zonal-affinity true

  • 创建具有拒绝策略和区域亲缘关系的基于策略的专用路径服务: ibmcloud is private-path-service-gateway-create --load-balancer r006-d-439744e1-81d7-43fb-95d5-2356774240bb --service-endpoints clidemo.domain.com --default-access-policy deny --name cli-ppsg-2 --zonal-affinity true

使用应用程序接口创建专用路径服务

要使用 API 创建“专用路径”服务,请按照以下步骤操作:

  1. 设置 API 环境

  2. 将以下值存储在要在 API 命令中使用的变量中:

    • loadBalancerId-首先,获取负载均衡器,然后填充变量:

      export loadBalancerId=<your_loadbalancer_id>
      
  3. 启动所有变量后,创建私有路径服务:

    curl -X POST -sH "Authorization:${iam_token}" \
    "$vpc_api_endpoint/v1/private_path_service_gateways?version=$api_version&generation=2" \
    -d {
      "default_access_policy": "review",
      "load_balancer": {
        "id": "$loadBalancerId"
      },
      "name": "my-ppsg",
      "service_endpoints": ["example.com"],
      "zonal_affinity": false
    }'
    

使用 Terraform 创建私有路径服务

下面的示例用 Terraform 提供了专用路径网络:

resource "ibm_is_private_path_service_gateway" "ppsg" {
    default_access_policy = "deny"
    load_balancer = ibm_is_lb.ppnlb.id
    service_endpoints = ["my-service.example.com"]
    zonal_affinity = false
    name = "my-example-ppsg"
}

有关 Terraform 资源的文档,请参阅 Terraform 注册表

注册和验证服务端点(FQDN)的所有权

创建私有路径服务时,您需要证明您拥有所提供的 服务端点(DNS FQDN)。 这样做是为了防止 DNS 劫持和 FQDN 冲突。 通过为每个 FQDN(服务端点)创建具有特定内容的 TXT 记录来验证所有权。 在公共 DNS 中创建 TXT 记录。 只有在创建专用路径服务时,才会查询公共 DNS。 创建专用路径服务后,数据路径中只能使用专用 DNS(绝不能使用公共 DNS)。

所需 TXT 记录必须以 ibm-domain-verification= 前缀开头。 如果前缀后面的值与创建“专用路径”服务的用户相关联的账户 ID 的 SHA-256 哈希值相匹配,则验证成功。 要添加的 TXT 记录示例: ibm-domain-verification=252cfc164d3600a79007f25312a6a924288cfc6dbcaeec838ca9048cde664acb

如何为您的 FQDN 添加 TXT 记录的细节因您使用的公共 DNS 服务而异。 建议您咨询 DNS 服务提供商了解详情。

如果为“专用路径”服务指定了多个服务端点,则所有端点的所有权验证都必须成功。

以下是可用于绕过域名所有权验证的顶级域列表:

  • .intranet
  • .internal
  • .private
  • .corp
  • .home
  • .lan

支持通配符 (*) 域。 例如,"service_endpoints": ["*.service.com"] 的专用路径服务包括其所有子域,如 api1.service.comapi2.service.com

如果通配符域包含有效的 TXT 记录,则 DNS 所有权验证成功。 在此示例中,为了通过验证,您可以将有效的 TXT 记录添加到 service.com 中。

后续步骤

  1. 验证与专用路径服务的连接
  2. 发布专用路径服务
  3. 向使用者传达连接信息
  4. 查看连接请求创建帐户策略