リソースバインディングの作成
特定のVPCから特定の Object Storage バケットへのアクセスを細かく制御するために、リソースバインディングを作成できます。 リソースバインディングの作成は任意ですが、これによりセキュリティグループおよびコンテキストベース制限(CBR)ルールを定義でき、DNS共有VPCトポロジーにおいてVPE経由でアクセス可能なバケットを厳密に制御できます。
リソースバインディングは、1つ以上の Object Storage バケットをVPEに関連付け、関連付けられたVPCから発信されたトラフィックのみがそれらのバケットにアクセスできるように(バケット上のCBRルールと組み合わせて)保証します。
開始前に
リソースバインディングを作成する前に、以下の考慮事項を確認してください:
-
VPCに対して既存のDNSハブおよびDNS共有トポロジが設定されていることを確認してください。
-
DNS共有VPC内のVPEは Cloud Object Storage、リソースバインディングを追加する前に、 必ずリソースごとのバインディングモードを使用して作成する必要があります。 VPEは、ハブVPCまたはDNS共有VPCのいずれかで作成できます。
-
DNS Cloud Object Storage 共有VPCからのみリソースへのアクセスを許可するには、DNS共有VPCが Cloud Object Storage リソースにアクセスすることを明示的に許可するCBRルールを作成する必要があります。
リソースバインディングを作成する前、およびDNSハブVPCからのアクセスを制限する前に、CBRルールを作成する必要があります。
コンソールでのリソースバインディングの作成
コンソール IBM CloudCloud Object Storage でサービスのリソースバインディングを作成するには、次の手順に従ってください:
-
コンソール IBM Cloud で、 ナビゲーションメニュー アイコンをクリックし、
> インフラストラクチャ
> ネットワーク > 仮想プライベートエンドポイントゲートウェイを選択します。
-
サービス クラウドオブジェクトストレージ 用に作成されたVPEの横にある「アクション
」メニューをクリックします。
または、リスト内のVPE名をクリックし、 [リソースバインディング ]タブをクリックして、既存のリソースバインディングを作成または管理することもできます。
このVPEでDNS共有がプライマリモードに設定されている場合、このモードではリソースバインディングを作成できないため、[ リソースバインディング ]タブは表示されません。
-
メニューから 「リソースバインディングの作成」 を選択します。
-
リソースバインディング名のプレフィックスを入力してください。
- システムは自動的にプレフィックスに番号を追加します(例:
vpe-gtw-resource-01,vpe-gtw-resource-02)。 - 一度に最大10個のバケットを追加できます。
- システムは自動的にプレフィックスに番号を追加します(例:
-
ビュー アカウントアカウント内で選択 で、インスタンスと1つ以上の Object StorageObject Storage バケットの場所を選択するか、[追加]をクリック CRNを入力してください して手動で追加します。
-
リストから Object Storage バケツを選択する。 次に、設定を確認し、 「保存」 をクリックしてください。
リソースバインディングが作成されると、指定されたバケット Cloud Object Storage へのトラフィックは、DNS共有VPC内の対応するテナント分離VPEを経由して送信されます。
アクセス権を調整するため、いつでもバインディングを変更または削除できます。
CLIからのリソースバインディングの作成
CLI Cloud Object Storage からサービスのリソースバインディングを作成するには、次の手順に従ってください:
-
CLI 環境をセットアップします。
-
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を使用したリソースバインディングの作成
API Cloud Object Storage を使用してリソースバインディングを作成するには、次の手順に従ってください:
-
API 環境をセットアップします。
-
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が別のリージョンで作成されている場合、 provider.tf provisioning_file内のプロバイダーブロックで適切なリージョンを指定してください。
デフォルト以外の地域をターゲットとする 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
}