创建本地访问端点网关
除了基于中心的DNS共享模型外,您还可以在DNS共享的VPC中创建本地访问虚拟私有端点网关。 本地访问虚拟私有云(VPEs)为 IBM Cloud 支持的服务提供私有本地连接,无需通过中心虚拟私有云(VPC)路由流量。
目前,此功能仅支持,IBM Cloud Object Storage 且仅向特定白名单客户开放。
准备工作
在控制台中创建本地访问端点网关
要在 IBM Cloud 控制台中创建本地访问端点网关,请按照以下步骤操作:
-
在 控制 IBM Cloud 台中,选择导航
,然后依次点击基础设施
> 网络 > 虚拟私有端点网关。 显示VPC的虚拟私有端点网关页面。
-
单击“**创建 **”进入配置页面。
-
在详细信息部分,输入以下字段的值:
- 名称- 为您的端点网关输入一个唯一名称。
- 资源组- 为端点网关选择一个资源组。 您可以使用此端点网关的默认组,或从列表中选择。 有关更多信息,请参阅在资源组中组织资源的最佳实践。
- 标签- 可选添加标签以组织资源、追踪使用成本或管理资源访问权限。
- 访问管理标签- 您还可以选择性地为资源添加访问管理标签,以帮助组织访问控制关系。 访问管理标签唯一支持的格式为
key:value. 有关更多信息,请参阅 《通过标签控制对资源的访问》。 - 虚拟私有云- 选择您需要 VPE IP 地址的 VPC。 根据您选择的VPC区域,系统将提供可供访问的服务列表,以便 IBM 您将其关联到端点网关。 如果目标服务未在您选择的VPC区域提供,您可以更改区域以在其他区域选择该服务。
如果目标服务或服务实例未显示,请重新验证您的IAM权限。 您还可以选择分配一个保留的IP地址绑定到网关,或指定一个VPC子网来分配保留的IP地址用于绑定到网关。
-
在“安全组”部分,从安全组表中勾选要附加的安全组复选框。 随后,您可以管理这些安全组,并收紧其针对端点网关的入站流量的安全规则。
当您创建端点网关时未指定安全组,系统将自动为该端点网关附加VPC默认安全组。 有关详细信息,请参阅 《配置用于端点网关的访问控制列表和安全组》。
在支持安全组之前创建的端点网关不附加任何安全组。 它们还允许所有入站流量。 若将安全组附加到未附加任何安全组的VPE上,则无法将该VPE恢复至未附加安全组的状态。 您可以通过附加一个包含允许所有入站流量的规则的安全组,恢复到之前的“允许所有入站流量”行为。 然而,此规则的安全性本质上低于设置更严格的安全组,因此不建议采用。
-
在 “请求连接到服务”部分,选择 IBM Cloud,然后从菜单中选择 cloud-object-storage。
-
选择服务区域。 该区域已预先选定以优化性能。
-
请注意,除配置服务端点( config endpoint type)之外的所有服务端点类型均支持资源绑定,这使得VPE绑定能够关联 Object Storage 到存储桶或资源。
-
-
在“共享 DNS”部分,请选择以下 DNS 解析绑定模式之一:
- Primary 允许将 VPE 网关的服务端点共享给中心 VPC 的 DNS 解析器,用于域名解析。
- 按资源绑定机制使VPE网关能够与云对象存储桶建立资源绑定关系,并共享服务资源端点,以便与中心VPC的DNS解析器进行名称解析。
- 禁用状态下,VPE网关的服务端点无法共享用于名称解析。
当虚拟私有云(VPC)作为DNS中心时,DNS共享始终设置为主模式,且该模式不可更改。
若选择 “按资源绑定”或“禁用”,则可创建可选资源绑定,从而允许从所选VPC对特定 Object Storage 存储桶启用精细访问控制。 有关更多信息,请 参 阅创建资源绑定。
在配置过程中,最多可绑定10个存储桶,后续可选择添加更多存储桶。
-
在保留IP部分,选择保留的IP地址。 您可以选择:
-
为我选择一个- 输入IP地址的前缀名称,否则将为您自动选择。 选择一个或多个子网(建议每个区域仅选择一个子网),并启用“自动释放”开关,以便在删除端点网关时自动删除该保留的IP地址。
-
从现有IP中选择- 从现有IP地址列表中选择。 如果不存在IP地址,请点击 “保留IP”来保留一个。
在VPC中,每个可用区(AZ)仅允许将一个保留IP绑定到VPE网关。 确保在VPC内的所有子网中,同一可用区内不存在其他绑定。
-
稍后选择- 在创建端点网关后某个时间点选择IP地址。
-
-
查看订单摘要,然后点击创建虚拟私有端点网关。 请求使用端点网关。
通过命令行界面创建本地访问端点网关
开始之前,请 先设置好您的命令行界面环境。
要通过命令行界面创建本地访问端点网关,请执行以下步骤:
-
列出符合条件可设置为端点网关目标的服务 IBM Cloud 实例:
ibmcloud is endpoint-gateway-targets -
运行以下命令创建端点网关:
ibmcloud is endpoint-gateway-create --target TARGET [--target-type private_path_service_gateway | provider_cloud_service | provider_infrastructure_service] [--vpc VPC] [--name NAME] [--rip RIP --subnet SUBNET | (--new-reserved-ip NEW_RESERVED_IP1 --new-reserved-ip NEW_RESERVED_IP2 ...)] [--allow-dns-resolution-binding false | true] [--sg SG] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]其中:
--target-type:- 指示此端点网关的目标类型,可选值为以下之一:,
provider_cloud_service``private_path_service_gateway,或provider_infrastructure_service。 --vpc:- 表示 VPC 的 ID 或名称。
--target:- 表示提供商基础设施服务的名称或提供商云服务实例的 CRN。 您可以使用命令
ibmcloud is endpoint-gateway-targets列出有资格被设置为端点网关目标的提供商云和基础设施服务。 --name:- 表示端点网关的新名称。
--rip:- 表示要绑定到端点网关的保留 IP 的 ID。
--subnet:- 子网的标识或名称。 仅当提供的保留 IP 为名称格式时,才需要此名称。
--new-reserved-ip:- 表示以JSON格式或JSON文件形式的新保留IP配置。
RESERVED_IP_JSON|@RESERVED_IP_JSON_FILE --sg:- 表示安全组的ID。
若未指定
-sg,则 VPC 默认安全组将绑定至端点网关。--resource-group-id:- 表示资源组的 ID。 该选项与
--resource-group-name互斥。 --resource-group-name:- 表示资源组的名称。 该选项与
--resource-group-id互斥。 --output:- 指示输出格式。 仅支持 JSON。
-q, --quiet:- 抑制冗余输出。
有关更多信息和命令示例,请参阅 VPC CLI 参考 文档。
使用API创建本地访问端点网关
要使用 API 创建本地访问端点网关,请按照以下步骤操作:
-
设置 您的API环境。
-
将以下值存储在变量中,以便在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>
-
-
启动所有变量后,选择以下操作之一:
-
为特定虚拟私有云(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'"} ] }'创建用于连接私有路径服务的端点网关时,请确保 '"resource type" = "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 并配置 Provider IBM Cloud 插件。 有关更多信息,请参阅 《Terraform 入门指南》。
以下示例创建一个 VPE 网关:
resource "ibm_is_virtual_endpoint_gateway" "vpe_iam" {
name = "${var.name}-iam-vpe"
vpc = ibm_is_vpc.testacc_vpc.id
target {
resource_type = var.vpe_target_type
crn = var.vpe_target_crn
}
dns_resolution_binding_mode = "disabled"
}
resource "ibm_is_virtual_endpoint_gateway_resource_binding" "vpe_rb" {
name = "${var.name}-rb-vpe"
endpoint_gateway_id = ibm_is_virtual_endpoint_gateway.vpe_iam.id
target {
crn = var.vpe_rb_target
}
}
data "ibm_is_virtual_endpoint_gateway" "vpe_iam" {
name = ibm_is_virtual_endpoint_gateway.vpe_iam.name
}
data "ibm_is_virtual_endpoint_gateways" "vpe_iam" {
}
data ibm_is_virtual_endpoint_gateway_resource_bindings bindings {
endpoint_gateway_id = ibm_is_virtual_endpoint_gateway.vpe_iam.id
}
data ibm_is_virtual_endpoint_gateway_resource_binding binding {
endpoint_gateway_id = ibm_is_virtual_endpoint_gateway.vpe_iam.id
endpoint_gateway_resource_binding_id = ibm_is_virtual_endpoint_gateway_resource_binding.vpe_rb.endpoint_gateway_resource_binding_id
}
创建本地访问端点网关后
若返回至「VPC 的虚拟私有端点网关」页面,您的端点网关将显示在表格中。 对于 IBM Cloud 服务,您的端点网关状态将从 Updating 变更为 Stable。 您可以单击“操作”菜单 :重命名、保留或绑定IP地址,解除IP绑定,或删除端点网关。