IBM Cloud Docs
将 DNS 共享与中心 VPC 断开连接

将 DNS 共享与中心 VPC 断开连接

要断开与 DNS 中心 VPC 的 DNS 共享,DNS 共享的 VPC 授权用户可以将虚拟专用端点 (VPE) 网关取消共享到 DNS 中心 VPC。

可以通过控制台、CLI、API 或 Terraform 将 DNS 共享断开到集线器 VPC。

准备工作

在断开 DNS 共享之前,请查看以下先决条件:

  • 要在 DNS 解析器类型设置为 Delegated 的情况下断开 DNS 共享与 DNS 共享 VPC 的连接,必须首先将解析器类型更新为 SystemManual。 然后,删除 DNS 解析绑定。
  • 要断开 DNS 共享与中心 VPC 的连接,必须为中心 VPC 用户分配 DNSBindingConnector IAM 角色。

在控制台中断开与集线器 VPC 的 DNS 共享

要断开与 DNS 中心 VPC 的 DNS 共享,请执行以下步骤:

  1. 从浏览器中,打开 IBM Cloud 控制台,并登录到 DNS 共享 VPC 所在的帐户。
  2. 选择导航菜单 图标,然后单击基础架构 > 网络 > VPC
  3. 单击要断开其 DNS 共享的 DNS 共享 VPC。
  4. 滚动到“可选 DNS 设置”部分,然后展开 DNS 解析器设置,然后单击 编辑
  5. 在“编辑 DNS 解析器设置”侧面板中,禁用 DNS 中心。
  6. 选择 系统 作为 DNS 解析器类型,然后单击 保存
  7. 展开 DNS 解析绑定部分,然后单击 删除 图标。 确认删除解析绑定以断开此共享 VPC 与 DNS 中心 VPC 的连接。

中心 VPC 管理员可以从 DNS 共享 VPC 撤销 IAM 服务到服务 (s2s) 授权。 因此,在中心 VPC 重新启动对 DNS 共享 VPC 的 IAM s2s 授权之前,DNS 共享 VPC 将无法创建与中心 VPC 的 DNS 解析绑定。

从 CLI 断开 DNS 共享与中心 VPC 的连接

要使用 CLI 断开与 DNS 中心 VPC 的 DNS 共享,请执行以下步骤:

  1. 设置 CLI 环境

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

    ibmcloud login --sso
    
  3. 要断开与 DNS 中心 VPC 的 DNS 共享,请输入以下命令:

    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_BINDINGS1
    指定 VPC DNS 解析绑定的 ID 或名称。
    DNS_RESOLUTION_BINDINGS2
    指定第二个 VPC DNS 解析绑定的 ID 或名称。
    --output
    指定输出格式,仅支持 JSON。 以下项之一:JSON
    --f, --force
    指定强制操作而不确认。
    -q, --quiet
    禁止详细输出。

使用 API 将 DNS 共享与中心 VPC 断开连接

要使用 API 断开与 DNS 中心 VPC 的 DNS 共享,请执行以下步骤:

  1. 设置 API 环境

  2. 将以下值存储在要在 API 命令中使用的变量中:

    export dns_shared_vpc_id=<dns_shared_vpc_id>
    export dns_binding_id=<dns_shared_vpc_dns_binding_id>
    export iam_policy_id=<cross_account_iam_policy_id>
    
  3. 按以下顺序运行这些命令:

    curl -sX PATCH "$vpc_api_endpoint/v1/vpcs/$dns_shared_vpc_id?version=$version&generation=2" -H "Authorization: Bearer $token" -d '{"dns": {"resolver": {"type": "system"}}}'
    
    curl -sX DELETE "$vpc_api_endpoint/v1/vpcs/$dns_shared_vpc_id/dns_resolution_bindings/$dns_binding_id?version=$version&generation=2" -H "Authorization: Bearer ${iam_token}"
    
    curl -sX DELETE "$iam_api_endpoint/v1/policies/$iam_policy_id" -H "Authorization: Bearer ${iam_token}"
    

使用 Terraform 将 DNS 共享与 DNS 中心 VPC 断开连接

您可以使用 Terraform 将 DNS 共享与 DNS 中心 VPC 断开连接。

要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供者插件。 有关更多信息,请参阅 Terraform 入门

VPC 基础架构服务使用特定于区域的端点,缺省情况下以 us-south 为目标。 如果在另一个区域中创建 VPC,请确保以 provider.tf 文件的提供程序块中的相应区域为目标。

请参阅以下以非缺省 us-south 区域为目标的示例。

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

要断开与 DNS 中心 VPC 的 DNS 共享:

resource "ibm_is_vpc" "example" {
  name = "example-vpc"
  dns {
		enable_hub = true
		resolver {
        type = "system"
		}
	}
}


terraform destroy -target=ibm_is_vpc_dns_resolution_binding.my_dns_resolution_binding

断开 DNS 共享后的注意事项

当中心 VPC 所有者删除 DNS 解析绑定时,当 DNS 共享 VPC 委派其 DNS 解析器使用中心 VPC 的定制解析器时,可能会导致 DNS 共享 VPC 的运行状态降级。 要从 Degraded 状态复原 VPC 的运行状况,DNS 共享 VPC 所有者可以将其 DNS 解析器类型更新为 System

当 DNS 共享 VPC 所有者删除 DNS 解析绑定时,根据是否向 DNS 共享 VPC 授予了具有 DNSBindingConnector 角色的中心 VPC 上的 service-to-service IAM 授权策略,系统将删除中心侧的 DNS 解析绑定 (授权时) 或将中心的绑定置于 Faulted 状态。

有关更多信息,请参阅 监视 VPC 以获取状态和运行状况