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 解決バインディングを作成するには、以下の手順を実行します。
-
ブラウザから、 IBM Cloud コンソールを開き、 アカウントログインします。
-
ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > VPCをクリックします。
-
DNS レコードを DNS ハブ VPC と共有する仮想プライベート・クラウドをクリックします。
-
「オプションの DNS 設定 (Optional DNS settings)」セクションまでスクロールして、「DNS 解決バインディング (DNS resolution binding)」セクションを展開し、 「作成」 をクリックします。
-
「作成」サイド・パネルで、解決バインディングの名前を入力します。
-
DNS ハブ VPC のクラウド・リソース名 (CRN) を入力するか、メニューを使用して同じアカウント内のハブ VPC を選択します。
-
「作成」 をクリックして、DNS 解決バインディングを作成します。
DNS 解決バインディングを持つ VPC の名前の横に
DNS-Sharedタグが表示されるようになりました。
コンソールでDNS解決バインディングを削除する
IBM Cloud コンソールで DNS 解決バインディングを削除するには、以下の手順を実行します。
解決策のバインディングを削除するには、適切な DNS Services IAMロール(マネージャーまたは管理者)が必要です。 また、カスタムリゾルバを削除する前に、すべてのDNS解決バインディングを削除する必要がある点に留意してください。
- ブラウザから、 IBM Cloud コンソールを開き、 アカウントログインします。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > VPCをクリックします。
- DNS 解決バインディングを削除する仮想プライベート・クラウドをクリックします。
- 「オプションの DNS 設定 (Optional DNS settings)」セクションまでスクロールし、「DNS 解決バインディング (DNS resolution binding)」セクションを展開します。
- **「削除」**をクリックします。 複数のバインディングがある場合は、「アクション」アイコン
をクリックしてから、 「削除」 をクリックします。
CLI からの DNS 解決バインディングの作成
CLI を使用して DNS 解決バインディングを作成するには、以下の手順を実行します。
-
CLI 環境をセットアップします。
-
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 JSONibmcloud 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 を使用して解決バインディングを作成するには、以下の手順を実行します。
-
API 環境をセットアップします。
-
APIコマンドで使用する変数に以下の値を格納する:
export hub_vpc_id=<hub_vpc_id> export spoke_vpc_id=<spoke_vpc_id> -
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 解決バインディングを削除するには、以下の手順を実行します。
-
API 環境をセットアップします。
-
APIコマンドで使用する変数に以下の値を格納する:
export dns_binding_id=<spoke_vpc_dns_binding_id> -
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