IBM Cloud Docs
创建端点网关

创建端点网关

您可以为希望在私有 VPC 网络上访问的IBM Cloud®或第三方服务或应用程序创建端点网关。 您可以使用控制台、CLI、API 或 Terraform。

准备工作

在创建端点网关之前,请确保您查看了 规划虚拟专用端点网关 并具备以下先决条件:

  • VPC
  • 至少一个可用性区域中的子网 (如果您打算在供应端点网关的同时绑定 IP 地址)
  • 服务实例
  • 相应的 IAM 许可权,用于创建端点网关,创建或绑定保留 IP,以及查看或列出目标服务
  • 验证您正在配置的服务是否已启用 VPE

在控制台中创建端点网关

要在 IBM Cloud 控制台中创建端点网关,请执行以下步骤:

  1. IBM Cloud 控制台,选择导航菜单 导航菜单图标,然后单击基础架构 VPC 图标 > 网络 > 虚拟专用端点网关。 此时将显示 VPC 页面的虚拟专用端点网关。

  2. 单击“**创建 **”进入配置页面。

  3. 在详细信息部分,输入以下字段的值:

    • 名称-输入端点网关的唯一名称。
    • 资源组- 为端点网关选择一个资源组。 您可以对此端点网关使用缺省组,也可以从列表中进行选择。 有关更多信息,请参阅在资源组中组织资源的最佳实践
    • 标记-(可选) 添加标记以组织,跟踪使用成本或管理对资源的访问权。
    • 访问管理标记-您还可以选择向资源添加访问管理标记,以帮助组织访问控制关系。 访问管理标记唯一受支持的格式为 key:value。 有关更多信息,请参阅 使用标记控制对资源的访问
    • 虚拟私有云- 选择需要 VPE IP 地址的 VPC。 根据所选 VPC 的区域,系统将为您提供可访问以与端点网关关联的 IBM 服务的列表。 如果在所选 VPC 的区域中未提供目标服务,那么可以更改该区域以选择另一个区域中的服务。

    如果未显示预期的服务或服务实例,请重新验证 IAM 许可权。 您还可以选择分配保留 IP 地址以绑定到网关,或者指定 VPC 子网以分配保留 IP 地址以绑定到网关。

  4. 在“安全组”部分中,从安全组表中选择要附加的安全组的复选框。 然后,您可以管理这些安全组,并针对指向端点网关的入站流量收紧其安全规则。

    在未指定安全组的情况下创建端点网关时,VPC 缺省安全组将连接到端点网关。 有关更多信息,请参阅 配置 ACL 和安全组以用于端点网关

    在支持安全组之前创建的端点网关没有附加安全组。 它们还允许所有入站流量。 如果在没有附加安全组的 VPE 上附加安全组,则无法将该 VPE 恢复到没有安全组的状态。 您可以通过附加具有允许所有入站流量的规则的安全组来还原到先前的“允许所有入站流量”行为。 不过,与限制性更强的安全组相比,这一规则本身安全性较低,因此不推荐使用。

  5. Request connection to a service 部分,选择 IBM Cloud 或非 IBM Cloud 服务,以便使用此端点网关访问。

    • 对于 IBM Cloud 服务,从菜单中选择可用的 IBM Cloud 服务产品,然后选择其区域。 预先选择区域以优化性能。
    • 对于非 IBMIBM Cloud服务,请输入私有路径服务的云资源名称 (CRN)(从服务提供商处获取)。

您的连接请求将发送至服务提供者以进行复审。

审查可能会根据提供商选择的账户政策自动进行,如果提供商选择人工审查其请求,则可能需要数天时间。 如果允许您的请求,您将收到通知,然后可以访问该服务。 如果您的请求被拒绝,请与服务提供者联系。

  1. 在“保留的 IP”部分中,选择保留的 IP 地址。 您可以选择:

    • 为我选择一个-输入 IP 地址的名称,或者为您选择一个 IP 地址。 如果希望在删除端点网关时自动删除此保留 IP,请从列表中选择子网并启用“自动删除”切换。
    • 从现有 IP 中选择-从现有 IP 地址列表中选择。
    • 稍后选择一个-在创建端点网关后的某个时间点选择 IP 地址。
  2. 查看 订单摘要,然后单击 创建虚拟专用端点网关。 请求使用端点网关。

从 CLI 创建端点网关

开始之前,请 设置 CLI 环境

要从 CLI 创建端点网关,请执行以下步骤:

  1. 列出有资格设置为端点网关目标的 IBM Cloud 服务实例:

    ibmcloud is endpoint-gateway-targets
    
  2. 运行以下命令创建端点网关:

    ibmcloud is endpoint-gateway-create \
     --vpc VPC_ID \
     --target TARGET [--name NAME] [(--reserved-ip-id RESERVED_IP_ID1 --reserved-ip-id RESERVED_IP_ID2 ...) \
     | (--new-reserved-ip NEW_RESERVED_IP1 --new-reserved-ip NEW_RESERVED_IP2 ...)] \
     [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
     [--json]
    

    其中:

    --vpc
    表示 VPC 的 ID。
    --target
    指示提供者云服务实例的名称或 CRN。
  3. 通过附加专用路径服务的目标类型来创建端点网关:

    ibmcloud is endpoint-gateway-create (--target-type private_path_service_gateway | provider_cloud_service | provider_infrastructure_service) --target TARGET [--vpc VPC] [--name NAME] [--rip RIP --subnet SUBNET | (--new-reserved-ip NEW_RESERVED_IP1 --new-reserved-ip NEW_RESERVED_IP2 ...)] [--sg SG] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name  RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]
    

    其中:

    --target-type:
    表示该端点网关的目标类型,以及以下选项之一:private_path_service_gatewayprovider_cloud_serviceprovider_infrastructure_service
    --vpc:
    表示 VPC 的 ID 或名称。
    --target:
    表示提供商基础设施服务的名称或提供商云服务实例的 CRN。 您可以使用命令 ibmcloud is endpoint-gateway-targets 列出有资格被设置为端点网关目标的提供商云和基础设施服务。

    您可以使用命令 ibmcloud is endpoint-gateway-targets 列出有资格被设置为端点网关目标的提供商云和基础设施服务。

    --name:
    表示端点网关的新名称。
    --reserved-ip-id:
    表示要绑定到端点网关的保留 IP 的 ID。
    --new-reserved-ip:
    以 JSON 格式或 JSON 文件(RESERVED_IP_JSON|@RESERVED_IP_JSON_FILE)表示新的保留 IP 配置。
    --security-group:
    表示安全组的 ID。

    如果不指定 -security-group,VPC 默认安全组将绑定到端点网关。

    --resource-group-id:
    表示资源组的 ID。 该选项与 --resource-group-name 互斥。
    --resource-group-name:
    表示资源组的名称。 该选项与 --resource-group-id 互斥。
    --output:
    表示输出格式。 仅支持 JSON。
    -q, --quiet:
    禁止冗长输出。

使用 API 创建端点网关

要使用 API 创建端点网关,请执行以下步骤:

  1. 设置 API 环境

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

    • ResourceGroupId- 首先,获取您的资源组,然后填充变量:

      export ResourceGroupId=<your_resourcegroup_id>
      
    • VpcId- 使用 list vpc 命令(使用前面的变量),然后根据提供的 ID 填充变量:

      export VpcId=<your_VPC_id>
      
    • TargetCrn-要在其中设置端点网关的 IBM Cloud 服务实例的名称或 CRN。 您可以使用命令 ibmcloud is endpoint-gateway-targets 列出有资格设置为端点网关目标的 IBM Cloud 服务实例。

      export TargetCrn=<CRN of a target service>
      
    • SubnetID (可选)-子网标识。

      export SubnetID=<your_subnet_id>
      
  3. 启动所有变量时,请执行下列其中一项操作:

    • 为特定 VPC 创建端点网关:

      curl -X POST -sH "Authorization:${iam_token}" \
      "$vpc_api_endpoint/v1/endpoint_gateways?version=$api_version&generation=2" \
      -d {
      "name": endpoint-gateway-1",
      "vpc": {"id":"'$VpcId'"},
      "target": {
      "crn": "$TargetCrn",
      "resource_type": "provider_cloud_service"
      },
      "security_groups": [
      {"id": "'$sg'"}
      ]
      }'
      

      创建端点网关以连接到专用路径服务时,请确保“资源类型”= "private_path_service_gateway"。

      为服务实例创建端点网关并分配保留 IP 地址后,必须将 VPC 网络中的 IP 地址绑定到端点网关。 请参阅 绑定和取消绑定保留 IP 地址 以获取详细信息。 这些绑定的 IP 地址将成为 VPE,用于访问映射到端点网关的服务。

    • 创建端点网关,并预留相关 IP 地址:

      curl -X POST -sH "Authorization:${iam_token}" \
      "$vpc_api_endpoint/v1/endpoint_gateways?version=$api_version&generation=2" \
      -d {
      "name": endpoint-gateway-1",
      "vpc": {"id":"'$VpcId'"},
      "target": {
      "crn": "$TargetCrn",
      "resource_type": "provider_cloud_service"
      },
      "security_groups": [
      {"id": "'$sg'"}
      ],
      "ips": [
      {"subnet": { "id": "$SubnetId" } }
      ],
      }'
      

      创建端点网关以连接到专用路径服务时,请确保“资源类型”设置为 private_path_service_gateway

为 IBM Cloud 服务创建端点网关后,它将显示与其关联的端点。 您可以通过多种方式编辑端点网关,如绑定/解除绑定 IP、更改资源组和更新标记。 如果出于任何原因需要更改服务端点,那么必须删除并重新创建端点网关。

使用 Terraform 创建端点网关

您可以使用 Terraform 来创建端点网关。

要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供者插件。 有关更多信息,请参阅 Terraform 入门

以下示例创建 VPE 网关:

resource "ibm_is_virtual_endpoint_gateway" "example" {

  name = "example-endpoint-gateway"
  target {
    name          = "ibm-ntp-server"
    resource_type = "provider_infrastructure_service"
  }
  vpc            = ibm_is_vpc.example.id
  resource_group = data.ibm_resource_group.example.id
  security_groups = [ibm_is_security_group.example.id]
}

resource "ibm_is_virtual_endpoint_gateway" "example1" {
  name = "example-endpoint-gateway-1"
  target {
    name          = "ibm-ntp-server"
    resource_type = "provider_infrastructure_service"
  }
  vpc = ibm_is_vpc.example.id
  ips {
    subnet = ibm_is_subnet.example.id
    name   = "example-reserved-ip"
  }
  resource_group = data.ibm_resource_group.example.id
  security_groups = [ibm_is_security_group.example.id]
}

resource "ibm_is_virtual_endpoint_gateway" "example3" {
  name = "example-endpoint-gateway-2"
  target {
    name          = "ibm-ntp-server"
    resource_type = "provider_infrastructure_service"
  }
  vpc = ibm_is_vpc.example.id
  ips {
    subnet = ibm_is_subnet.example.id
    name   = "example-reserved-ip"
  }
  resource_group = data.ibm_resource_group.example.id
  security_groups = [ibm_is_security_group.example.id]
}

resource "ibm_is_virtual_endpoint_gateway" "example4" {
  name = "example-endpoint-gateway-3"
  target {
    crn           = "crn:v1:bluemix:public:cloud-object-storage:global:::endpoint:s3.direct.mil01.cloud-object-storage.appdomain.cloud"
    resource_type = "provider_cloud_service"
  }
  vpc            = ibm_is_vpc.example.id
  resource_group = data.ibm_resource_group.example.id
  security_groups = [ibm_is_security_group.example.id]
}

创建 VPE 网关后

如果返回到“VPC 的虚拟专用端点网关”页面,您的端点网关就会显示在表中。

  • 对于 IBM Cloud 服务,端点网关的状态将从 Updating 变为 Stable。 您可以单击操作菜单操作菜单 来重命名、保留或绑定 IP、解除 IP 绑定或删除端点网关。
  • 对于非IBM Cloud (第三方) 服务,您的端点网关状态为 Pending,直到服务提供者允许或拒绝您的连接请求为止。 建立连接时,状态会更改为 Stable。 您可以单击 跟踪 或展开端点网关的表行以查看请求的进度。
  • (可选) VPE 网关的表行中有一个 DNS 解析绑定开关,允许您对此端点网关启用或禁用 DNS 共享。 有关更多信息,请参阅 关于 VPE 网关的 DNS 共享