创建资源绑定

您可以创建资源绑定,从而对来自特定VPC的特定 Object Storage 存储桶实施精细访问控制。 创建资源绑定虽非强制要求,但可通过该绑定定义安全组和基于上下文的限制(CBR)规则,从而精确控制在DNS共享VPC拓扑中哪些存储桶可通过VPE访问。

资源绑定将一个或多个 Object Storage 存储桶与虚拟私有云(VPC)关联,确保(结合存储桶上的CBR规则)仅允许源自关联VPC的流量访问这些存储桶。

准备工作

在创建资源绑定之前,请考虑以下事项:

  • 请确保您的虚拟私有云(VPC)已配置现有的DNS-hub和DNS-shared拓扑结构。

  • 对于在 DNS 共享 VPC 中创建 Cloud Object Storage 的虚拟私有云(VPC),必须使用按资源绑定模式创建该 VPC,之后才能添加任何资源绑定。 虚拟私有云(VPC)可在中心型或DNS共享型VPC中创建。

  • 要允许仅从 DNS 共享 VPC 访问 Cloud Object Storage 资源,您必须创建 CBR 规则,明确允许 DNS 共享 VPC 访问这些 Cloud Object Storage 资源。

    在创建资源绑定之前,以及在限制来自 DNS 中心 VPC 的访问之前,必须先创建 CBR 规则。

在控制台中创建资源绑定

要在 IBM Cloud 控制台中为服务 Cloud Object Storage 创建资源绑定,请执行以下步骤:

  1. 控制 IBM Cloud 台中,单击导航菜单图> 基础设施 VPC 图标 > 网络 > 虚拟私有端点网关

  2. 单击为该 云对象存储 服务创建的VPE旁边的“操作图标 操作”菜单。

    或者,您也可以在列表中点击VPE名称,然后点击“资源绑定”选项卡来创建或管理现有的资源绑定。

    如果此虚拟专用环境(VPE)的DNS共享设置为主模式,则资源绑定选项卡不会显示,因为在此模式下无法创建资源绑定。

  3. 从菜单中选择创建资源绑定

  4. 输入资源绑定名称前缀

    • 系统会自动在前缀后添加一个数字(例如 vpe-gtw-resource-01,, vpe-gtw-resource-02)。
    • 您一次最多可添加10个存储桶。
  5. “同一账户内选择”视图中,选择实例 Object Storage 和一个或多个 Object Storage 存储桶位置,或点击 “输入CRN”手动添加。

  6. 从列表中选择 Object Storage 邮筒。 然后,检查您的配置并点击保存

创建资源绑定后,指定存储 Cloud Object Storage 桶的流量将通过DNS共享VPC中对应的租户隔离VPE进行出站传输。

您可以随时修改或删除绑定以调整访问权限。

从命令行界面创建资源绑定

要通过命令行界面为 Cloud Object Storage 该服务创建资源绑定,请执行以下步骤:

  1. 设置您的命令行界面环境

  2. 使用 CLI 登录您的账户。 输入密码后,系统会提示您选择要使用的账户和区域:

    ibmcloud login --sso
    

要创建 DNS 资源绑定,请输入以下命令:

ibmcloud is endpoint-gateway-resource-binding-create ENDPOINT_GATEWAY --name NAME --target CRN

其中:

ENDPOINT_GATEWAY
这是您计划将此资源绑定到的VPE的名称。
-name NAME
此DNS资源的名称绑定。
--target CRN
是桶 Object Storage 的CRN。

命令示例

创建资源绑定 my-resource-binding 到端点网关 cli-egw-1

ibmcloud is endpoint-gateway-resource-binding-create cli-egw-1 --name my-resource-binding --target crn:v1:bluemix:public:cloud-object-storage:global:a/a1234567:504bde7e-28c0-447f-8f75-484c55b5f222:bucket:test-cli

使用API创建资源绑定

要 Cloud Object Storage 使用 API 为 创建资源绑定,请按以下步骤操作:

  1. 设置 您的API环境

  2. 要创建 DNS 资源绑定:

    curl -X POST \
               "__ENDPOINT__/__BASE_PATH__/endpoint_gateways/$endpoint_gateway_id/resource_bindings?__QUERY__" \
               __AUTHORIZATION__ \
               -d '{
                     "name": "my-resource-binding",
                     "target": {
                       "crn":"crn:v1:bluemix:public:cloud-object-storage:global:a/aa2432b1fa4d4ace891e9b80fc104e34:1a0ec336-f391-4091-a6fb-5e084a4c56f4:bucket:bucket-27200-lwx4cfvcue"
                     }
                   }'
    

使用Terraform创建资源绑定

要使用 Terraform,请下载 Terraform CLI 并配置 Provider IBM Cloud 插件。 有关更多信息,请参阅 《Terraform 入门指南》

VPC 基础设施服务使用区域特定的端点,默认 us-south 指向。 如果您的虚拟私有云(VPC)创建在其他区域,请确保在 vpc-provider.xml provider.tf 文件的提供者块中指定正确的区域。

请参阅以下示例,了解如何定位除默认区域以外的其他 us-south 区域。

provider "ibm" {
  region = "eu-de"
}

使用 Terraform 为服务 Cloud Object Storage 创建资源绑定:

resource "ibm_is_virtual_endpoint_gateway" "iam_vpe" {
  name = "${var.name}-vpe-iam"
  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" "iam_vpe_rb" {
  name                = "${var.name}-vpe-rb"
  endpoint_gateway_id = ibm_is_virtual_endpoint_gateway.iam_vpe.id

  target {
    crn = var.vpe_rb_target
  }
}

data "ibm_is_virtual_endpoint_gateway" "iam_vpe" {
  name = ibm_is_virtual_endpoint_gateway.iam_vpe.name
}

data "ibm_is_virtual_endpoint_gateways" "all" {}

data "ibm_is_virtual_endpoint_gateway_resource_bindings" "iam_vpe_rbs" {
  endpoint_gateway_id = ibm_is_virtual_endpoint_gateway.iam_vpe.id
}

data "ibm_is_virtual_endpoint_gateway_resource_binding" "iam_vpe_rb" {
  endpoint_gateway_id                     = ibm_is_virtual_endpoint_gateway.iam_vpe.id
  endpoint_gateway_resource_binding_id    = ibm_is_virtual_endpoint_gateway_resource_binding.iam_vpe_rb.endpoint_gateway_resource_binding_id
}