DNS 解決バインディングの作成および削除

DNS ハブ VPC が DNS 共有 VPC 上にある仮想プライベート・エンドポイント (VPE) ゲートウェイの DNS ホスト名を解決できるように、VPC と DNS ハブ VPC の間に DNS 解決バインディングを作成します。 DNS 共有 VPC にバインドされた VPE ゲートウェイでも、解決バインディングが有効になっている必要があることに注意してください (デフォルト設定)。

開始前に

DNS 解決バインディングを作成する前に、以下の前提条件を確認してください。

  • DNS共有プランニングの 検討
  • DNS ハブとして有効になっている VPC が既に存在していることを確認します。
  • DNSハブVPC上に DNSカスタムリゾルバを構成し、ハブおよびDNS共有VPCからのDNSクエリ、およびオンプレムネットワークからのDNSクエリの解決を担当させます。
  • ハブ VPC 管理者は、この DNS 共有 VPC がハブ VPC に対する DNSBindingConnector 権限を持つことを許可する IAM サービス間許可ポリシーを作成する必要があります。 ハブ VPC に対するこの DNSBindingConnector 役割は、DNS 共有 VPC が同じアカウントにあるか別のアカウントにあるかに関係なく必要です。 詳しくは、 サービス間許可の設定 を参照してください。

DNS解決バインディングは、コンソール、CLI、API、またはTerraformで作成できます。

コンソールでDNS解決バインディングを作成する

IBM Cloud コンソールで DNS 解決バインディングを作成するには、以下の手順を実行します。

  1. ブラウザから、 IBM Cloud コンソールを開き、 アカウントログインします。

  2. ナビゲーションメニューの メニューアイコンを 選択し、 インフラストラクチャ VPCアイコンネットワークVPCをクリックします。

  3. DNS レコードを DNS ハブ VPC と共有する仮想プライベート・クラウドをクリックします。

  4. 「オプションの DNS 設定 (Optional DNS settings)」セクションまでスクロールして、「DNS 解決バインディング (DNS resolution binding)」セクションを展開し、 「作成」 をクリックします。

  5. 「作成」サイド・パネルで、解決バインディングの名前を入力します。

  6. DNS ハブ VPC のクラウド・リソース名 (CRN) を入力するか、メニューを使用して同じアカウント内のハブ VPC を選択します。

  7. 「作成」 をクリックして、DNS 解決バインディングを作成します。

    DNS 解決バインディングを持つ VPC の名前の横に DNS-Shared タグが表示されるようになりました。

コンソールでDNS解決バインディングを削除する

IBM Cloud コンソールで DNS 解決バインディングを削除するには、以下の手順を実行します。

解決策のバインディングを削除するには、適切な DNS Services IAMロール(マネージャーまたは管理者)が必要です。 また、カスタムリゾルバを削除する前に、すべてのDNS解決バインディングを削除する必要がある点に留意してください。

  1. ブラウザから、 IBM Cloud コンソールを開き、 アカウントログインします。
  2. ナビゲーションメニューの メニューアイコンを 選択し、 インフラストラクチャ VPCアイコンネットワークVPCをクリックします。
  3. DNS 解決バインディングを削除する仮想プライベート・クラウドをクリックします。
  4. 「オプションの DNS 設定 (Optional DNS settings)」セクションまでスクロールし、「DNS 解決バインディング (DNS resolution binding)」セクションを展開します。
  5. **「削除」**をクリックします。 複数のバインディングがある場合は、「アクション」アイコン 「その他のアクション」アイコン をクリックしてから、 「削除」 をクリックします。

CLI からの DNS 解決バインディングの作成

CLI を使用して DNS 解決バインディングを作成するには、以下の手順を実行します。

  1. CLI 環境をセットアップします。

  2. CLIでアカウントログインします。 パスワードを入力すると、使用するアカウントとリージョンの入力を求めるプロンプトが表示されます。

    ibmcloud login --sso
    

DNS 解決バインディングを作成するには、次のコマンドを入力します。

ibmcloud is vpc-dns-resolution-binding-create VPC --target-vpc TARGET_VPC [--name NAME] [--output JSON] [-q, --quiet]

ここで、

VPC

VPCのIDまたは名前を指定します。

--target-vpc TARGET_VPC

DNS解決のために、このVPCをバインドする別のVPCのIDまたは名前を指定します。

-name NAME

このDNS解決バインディングの名前を指定します。

--output JSON

出力フォーマットを指定します。 以下のいずれかです: JSON

--q, --quiet

詳細出力を抑止します。

コマンドの例

  • ibmcloud is vpc-dns-resolution-binding-create my-vpc --name my-dns-res-binding --target-vpc my-dns-binding-vpc --output JSON
  • ibmcloud is vpc-dns-resolution-binding-create 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --name my-dns-res-binding --target-vpc my-dns-binding-vpc --output JSON

CLI からの DNS 解決バインディングの削除

CLI を使用して 1 つ以上の解決バインディングを削除するには、以下の手順を実行します。

ibmcloud is vpc-dns-resolution-binding-delete VPC (DNS_RESOLUTION_BINDING1 DNS_RESOLUTION_BINDING2 ...) [--output JSON] [-f, --force] [-q, --quiet]

ここで、

VPC
VPCのIDまたは名前を指定します。
DNS_RESOLUTION_BINDING1
DNS解決バインディングのIDまたは名前を指定します。
DNS_RESOLUTION_BINDING2
DNS解決バインディングのIDまたは名前を指定します。
--output JSON
出力フォーマットを指定します。 以下のいずれかです: JSON
--f, --force
確認なしで操作を強制する。
--q, --quiet
詳細出力を抑止します。

コマンド例

ibmcloud is vpc-dns-resolution-binding-delete r006-e5b9726b-c975-46bd-b713-c8aea55d51d8 r006-75ccea7b-c705-4b50-934d-2152f9eab4ec --name my-dns-resolution --output JSON

API を使用した DNS 解決バインディングの作成

API を使用して解決バインディングを作成するには、以下の手順を実行します。

  1. API 環境をセットアップします。

  2. APIコマンドで使用する変数に以下の値を格納する:

    export hub_vpc_id=<hub_vpc_id>
    export spoke_vpc_id=<spoke_vpc_id>
    
  3. DNS 解決バインディングを作成するには、以下のコマンドを実行します。

    curl -sX POST "$vpc_api_endpoint/v1/vpcs/$spoke_vpc_id/dns_resolution_bindings?version=$version&generation=2" -H "Authorization: Bearer ${iam_token}" -d '{"vpc": {"id": "'$hub_vpc_id'"}}'
    

出力例:

{
  "created_at": "2023-08-22T23:23:37Z",
  "endpoint_gateways": [],
  "href": "https://us-south.iaas.cloud.ibm.com/v1/vpcs/r006-955c4b01-006f-4630-8a6a-f57e30354974/dns_resolution_bindings/r006-f95df674-74af-47ea-91d9-0aec39972ae7",
  "id": "r006-f95df674-74af-47ea-91d9-0aec39972ae7",
  "lifecycle_state": "pending",
  "name": "my-binding",
  "resource_type": "vpc_dns_resolution_binding",
  "vpc": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/vpcs/r006-c6c9d533-a43b-488c-a4f5-b532f4ddd3e0",
    "id": "r006-c6c9d533-a43b-488c-a4f5-b532f4ddd3e0",
    "name": "hub-vpc",
    "remote": {},
    "resource_type": "vpc"
  }
}

APIによるDNS解決バインディングの削除

API を使用して DNS 解決バインディングを削除するには、以下の手順を実行します。

  1. API 環境をセットアップします。

  2. APIコマンドで使用する変数に以下の値を格納する:

    export dns_binding_id=<spoke_vpc_dns_binding_id>
    
  3. DNS 解決バインディングを削除するには、以下のコマンドを実行します。

    curl -sX DELETE "$vpc_api_endpoint/v1/vpcs/$spoke_vpc_id/dns_resolution_bindings/$dns_binding_id?version=$version&generation=2" -H "Authorization: Bearer ${iam_token}"
    

Terraform を使用した DNS 解決バインディングの作成

Terraform を使用して DNS 解決バインディングを作成できます。

Terraformを使用するには、Terraform CLIをダウンロードし、Provider IBM Cloud プラグインを設定してください。 詳しくは、 Terraform の概要を参照してください。

VPC インフラストラクチャー・サービスは、デフォルトで us-south をターゲットとする地域固有のエンドポイントを使用します。 VPC が別のリージョンに作成されている場合は、 provider.tf ファイル内のプロバイダー・ブロックで適切なリージョンをターゲットにしてください。

デフォルトの us-south 以外の地域をターゲットにする例を以下に示します。

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

DNS解決バインディングを作成するには

resource "ibm_is_vpc_dns_resolution_binding" "my_dns_resolution_binding" {
	name = "example-dns"
	vpc_id = "vpc_id"
	vpc {
		id = "<target_vpc_id">
	}
}
resource "ibm_is_vpc_dns_resolution_binding" "my_dns_resolution_binding" {
	name = "example-dns"
	vpc_id = "vpc_id"
	vpc {
		crn = "<target_vpc_crn">
	}
}
resource "ibm_is_vpc_dns_resolution_binding" "my_dns_resolution_binding" {
	name = "example-dns"
	vpc_id = "vpc_id"
	vpc {
		href = "<target_vpc_href">
	}
}

Terraform を使用した DNS 解決バインディングの削除

Terraform を使用して DNS 解決バインディングを削除するには、以下の例を参照してください。

terraform destroy --target ibm_is_vpc_dns_resolution_binding.my_dns_resolution_binding