建立、修改及刪除可用區

本頁面提供建立、更新、列出及刪除 Cloud DNS 代管區域的指示。使用本頁面之前,請先熟悉 Cloud DNS 總覽重要術語

事前準備

Cloud DNS API 會要求您建立 Cloud DNS 專案並啟用 Cloud DNS API。

如果您正在建立的應用程式會使用 REST API,則還必須建立 OAuth 2.0 用戶端 ID。

  1. 如果還沒有 Google 帳戶,請註冊 Google 帳戶
  2. 在 Trusted Cloud 控制台中啟用 Cloud DNS API。您可以選擇現有的 Compute Engine 或 App Engine 專案,也可以建立新的專案。
  3. 如果您需要向 REST API 發出要求,則必須建立 OAuth 2.0 ID。請參閱「設定 OAuth 2.0」。
  4. 請注意,在後續步驟中,您必須在專案中輸入下列資訊:
    • 用戶端 ID (xxxxxx.apps.googleusercontent.com)。
    • 要使用的專案 ID。您可以在 Trusted Cloud 控制台的「總覽」頁面頂端找到 ID。您也可以要求使用者提供要在應用程式中使用的專案名稱。

如果您先前未執行過 Google Cloud CLI,請執行下列指令,指定專案名稱並透過 Trusted Cloud 控制台驗證:

gcloud auth login

如要在其他專案的 Trusted Cloud by S3NS 資源上執行 gcloud 指令,請為該指令和本頁面中的其他 gcloud 指令指定 --project 選項。

建立代管區域

您建立的每個受管理區域都會與Trusted Cloud 專案建立關聯。以下各節說明如何建立 Cloud DNS 支援的受管理區域類型。

建立不公開區域

如要建立新的代管不公開區域,並由 Cloud DNS 管理不公開 DNS 記錄,請完成下列步驟。詳情請參閱「Cloud DNS 私人區域的最佳做法」。

主控台

  1. 前往 Trusted Cloud 控制台的「建立 DNS 區域」頁面。

    前往「建立 DNS 區域」

  2. 在「Zone type」(區域類型) 中,選取「Private」(不公開)

  3. 輸入「Zone name」(可用區名稱),例如 my-new-zone

  4. 輸入私人區域的「DNS name」(DNS 名稱) 字尾,區域中的所有記錄都會共用這個後置字串,例如:example.private

  5. 選用:新增說明。

  6. 在「選項」下方,選取「預設 (私人)」

  7. 選取必須顯示不公開區域的虛擬私有雲 (VPC) 網路。只有您選取的虛擬私有雲網路,才能查詢區域中的記錄。

  8. 點選「建立」

gcloud

請執行 dns managed-zones create 指令。

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --labels=LABELS \
    --visibility=private

更改下列內容:

  • NAME:可用區名稱
  • DESCRIPTION:區域說明
  • DNS_SUFFIX:您區域的 DNS 尾碼,例如 example.private
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路獲授權可查詢區域
  • LABELS:以半形逗號分隔的鍵/值配對清單 (選用),例如 dept=marketingproject=project1;詳情請參閱 SDK 說明文件

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

API

使用 managedZones.create 方法傳送 POST 要求:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{

  "name": "NAME",
  "description": "DESCRIPTION",
  "dnsName": "DNS_NAME",
  "visibility": "private",
  "privateVisibilityConfig": {
    "kind": "dns#managedZonePrivateVisibilityConfig",
    "networks": [
      {
        "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
        "networkUrl": "VPC_NETWORK_1"
      },
      {
        "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
        "networkUrl": "VPC_NETWORK_2"
      },
      ....
    ]
  }
}

更改下列內容:

  • PROJECT_ID:建立受管理區域的專案 ID
  • NAME:可用區名稱
  • DESCRIPTION:區域說明
  • DNS_NAME:您區域的 DNS 尾碼,例如 example.private
  • VPC_NETWORK_1VPC_NETWORK_2: 同一專案中虛擬私人雲端網路的網址,可查詢這個區域中的記錄。您可以新增多個虛擬私有雲網路,如要判斷虛擬私有雲網路的網址,請使用下列 gcloud 指令,並將 VPC_NETWORK_NAME 替換為網路名稱:

    gcloud compute networks describe VPC_NETWORK_NAME \
     --format="get(selfLink)"
    

建立具備特定 IAM 權限的可用區

個別資源代管可用區的身分與存取權管理 (IAM) 權限,可讓您為同一專案下的不同代管可用區設定特定的讀取、寫入或管理員權限。

如需瞭解如何建立具備特定 Identity and Access Management (IAM) 權限的可用區,請參閱「建立具備特定 IAM 權限的可用區」。

建立 Service Directory DNS 區域

您可以建立 Service Directory 區域,讓以 Trusted Cloud為基礎的服務透過 DNS 查詢 Service Directory 命名空間。

如需建立 Service Directory DNS 區域的詳細操作說明,請參閱「設定 Service Directory DNS 區域」。

如要瞭解如何使用 DNS 查詢 Service Directory,請參閱「使用 DNS 查詢」。

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

建立轉送可用區

轉送區域可讓您指定特定私有區域的名稱伺服器。如需如何建立新的代管不公開轉送區域的操作說明,請參閱「建立轉送區域」。

建立對接可用區

DNS 對等互連功能可讓您將某個區域命名空間送出的記錄要求傳送到另一個虛擬私有雲網路。如需建立對等互連可用區的操作說明,請參閱「建立對等互連可用區」。

建立跨專案繫結可用區

建立可繫結至同機構中其他專案所擁有網路的代管不公開區域。如要瞭解如何建立跨專案繫結可用區,請參閱跨專案繫結可用區

更新代管區域

Cloud DNS 可讓您修改代管公開或代管不公開區域的特定屬性。

更新標籤

如要新增標籤、變更現有標籤、移除所選標籤或清除受管理區域的所有標籤,請完成下列步驟。

gcloud

請執行 dns managed-zones update 指令。

gcloud dns managed-zones update NAME \
    --update-labels=LABELS
gcloud dns managed-zones update NAME \
    --remove-labels=LABELS
gcloud dns managed-zones update NAME \
    --clear-labels

更改下列內容:

  • NAME:可用區名稱
  • LABELS:以半形逗號分隔的鍵/值配對清單 (選用),例如 dept=marketingproject=project1;詳情請參閱 SDK 說明文件

列出並說明代管區域

下列各節說明如何列出或描述受管理區域。

列出代管可用區

如要列出專案中的所有代管區域,請完成下列步驟。

主控台

  1. 前往 Trusted Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 在右側窗格中查看代管區域。

gcloud

請執行 dns managed-zones list 指令。

gcloud dns managed-zones list

如要列出所有代管區域,請修改指令如下: 如要列出所有代管私人區域,請修改指令如下:

gcloud dns managed-zones list \
   --filter="visibility=private"

描述代管區域

如要查看受管理區域的屬性,請完成下列步驟。

主控台

  1. 前往 Trusted Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要檢查的區域。

gcloud

請執行 dns managed-zones describe 指令。

gcloud dns managed-zones describe NAME

NAME 替換成您的區域名稱。

刪除代管區域

區域刪除後,DNS 記錄就會永久移除,無法復原。為避免遺失 DNS 記錄,請先匯出區域資料再刪除。如要瞭解如何匯出區域資料,請參閱匯入及匯出資源記錄集

如要刪除受管理區域,請完成下列步驟。

主控台

  1. 前往 Trusted Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要刪除的受管理區域。

  3. 按一下「刪除儲存區」

gcloud

  1. 移除區域中的所有記錄,但 SOANS 記錄除外。 詳情請參閱「移除記錄」。只要將空白檔案匯入記錄集,即可快速清空整個區域。詳情請參閱「匯入及匯出記錄集」。例如:

    touch empty-file
    gcloud dns record-sets import -z NAME \
       --delete-all-existing \
       empty-file
    rm empty-file
    

    NAME 替換成您的區域名稱。

  2. 如要刪除新的代管私人可用區,請執行 dns managed-zones delete 指令:

    gcloud dns managed-zones delete NAME
    

    NAME 替換成您的區域名稱。

後續步驟