本頁面提供建立、更新、列出及刪除 Cloud DNS 代管區域的操作說明。使用本頁面之前,請先熟讀「Cloud DNS 總覽」和「重要詞彙」。
事前準備
Cloud DNS API 會要求您建立 Cloud DNS 專案,並啟用 Cloud DNS API。
如果您建立的應用程式會使用 REST API,還須建立 OAuth 2.0 用戶端 ID。
- 如果您還沒有 Google 帳戶,請註冊 Google 帳戶。
- 在 Google Cloud 控制台中啟用 Cloud DNS API。您可以選擇現有的 Compute Engine 或 App Engine 專案,也可以建立新的專案。
- 如需向 REST API 發出要求,必須建立 OAuth 2.0 ID,請參閱「設定 OAuth 2.0」。
- 請注意,在專案的後續步驟中,您需輸入下列資訊:
-
用戶端 ID (
xxxxxx.apps.googleusercontent.com)。 - 要使用的專案 ID。您可以在 Google Cloud 控制台的「Overview」(總覽) 頁面頂端找到這個 ID。此外,也能要求使用者提供想在應用程式中使用的專案名稱。
-
用戶端 ID (
如果您先前沒有執行過 Google Cloud CLI,請執行下列指令,指定專案名稱並透過 Google Cloud 控制台驗證:
gcloud auth login
如要對其他專案的 Google Cloud 資源執行 gcloud 指令,請為這個指令和本頁面提及的其他 gcloud 指令指定 --project 選項。
建立代管區域
您建立的每個代管區域都會與Google Cloud 專案建立關聯。以下各節說明如何建立 Cloud DNS 支援的代管區域類型。
建立公開區域
如要建立新的代管區域,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Create a DNS zone」(建立 DNS 區域) 頁面。
將「Zone type」(區域類型) 設為「Public」(公開)。
在「Zone name」(區域名稱) 中輸入名稱,例如
my-new-zone。根據您擁有的網域名稱,輸入區域的「DNS name」(DNS 名稱) 尾碼,例如
example.com。區域中的所有記錄都會使用這個尾碼。在「DNSSEC」底下選擇「Off」(關閉)、「On」(開啟) 或「Transfer」(轉移)。詳情請參閱「為現有代管區域啟用 DNSSEC」。
按一下「Create」(建立),隨即會顯示「Zone details」(區域詳細資料) 頁面。
gcloud
請執行 dns managed-zones create 指令。
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--labels=LABELS \
--visibility=public
更改下列內容:
NAME:區域名稱DESCRIPTION:區域說明DNS_SUFFIX:區域的 DNS 尾碼,例如example.comLABELS:以半形逗號分隔的鍵/值組合清單 (選用),例如dept=marketing或project=project1;詳情請參閱 SDK 說明文件
Terraform
API
使用 managedZones.create 方法傳送 POST 要求:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{
"name": "NAME",
"description": "DESCRIPTION",
"dnsName": "DNS_NAME",
"visibility": "public"
}
更改下列內容:
PROJECT_ID:要用於建立代管區域的專案 IDNAME:區域名稱DESCRIPTION:區域說明DNS_NAME:區域的 DNS 尾碼,例如example.com
建立私人區域
如要建立新的私人代管區域,並由 Cloud DNS 管理私人 DNS 記錄,請完成下列步驟。詳情請參閱「Cloud DNS 私人區域最佳做法」。
控制台
前往 Google Cloud 控制台的「Create a DNS zone」(建立 DNS 區域) 頁面。
在「Zone type」(區域類型) 中,選取「Private」(私人)。
在「Zone name」(區域名稱) 中輸入名稱,例如
my-new-zone。輸入私人區域的「DNS name」(DNS 名稱) 尾碼,例如
example.private。該區域中的所有記錄都會使用這個尾碼。選填:新增說明。
在「Options」(選項) 下方選取「Default (private)」(預設 (私人))。
選取必須顯示私人區域的虛擬私有雲 (VPC) 網路。只有您選取的虛擬私有雲網路有權查詢該區域中的記錄。
點選「Create」(建立)。
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.privateVPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路有權查詢該區域LABELS:以半形逗號分隔的鍵/值組合清單 (選用),例如dept=marketing或project=project1;詳情請參閱 SDK 說明文件
Terraform
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:要用於建立代管區域的專案 IDNAME:區域名稱DESCRIPTION:區域說明DNS_NAME:區域的 DNS 尾碼,例如example.privateVPC_NETWORK_1和VPC_NETWORK_2:同一專案中的虛擬私有雲網路網址,這些虛擬私有雲網路可查詢此區域中的記錄。您可以依照指示新增多個虛擬私有雲網路。如要確認虛擬私有雲網路的網址,請使用下列gcloud指令,並將VPC_NETWORK_NAME替換為網路名稱:gcloud compute networks describe VPC_NETWORK_NAME \ --format="get(selfLink)"
建立具備特定 IAM 權限的區域
個別資源代管區域的 Identity and Access Management (IAM) 權限,可用於為同一專案下的不同代管區域,設定特定的讀取、寫入或管理員權限。
如需瞭解如何建立具備特定 Identity and Access Management (IAM) 權限的區域,請參閱「建立具備特定 IAM 權限的區域」操作說明。
建立 Service Directory DNS 區域
您可以建立 Service Directory 區域,讓 Google Cloud相關服務透過 DNS 查詢 Service Directory 命名空間。
如需瞭解如何建立 Service Directory DNS 區域,請參閱「設定 Service Directory DNS 區域」的詳細操作說明。
如需瞭解如何使用 DNS 查詢 Service Directory,請參閱「使用 DNS 查詢」。
Terraform
建立私人代管反向查詢區
代管反向查詢區為私人代管區域,具有一項特殊屬性,可指示 Cloud DNS 對 Compute Engine DNS 資料執行 PTR 查詢。您必須為 Cloud DNS 設定代管反向查詢區,才能正確解析虛擬機器 (VM) 執行個體的非 RFC 1918 PTR 記錄。
如要瞭解如何建立新的私人代管反向查詢區,請參閱「建立代管反向查詢區」。
建立轉送區域
轉送區域可用於為特定私人區域設定目標名稱伺服器。如需建立新私人代管轉送區域的操作說明,請參閱「建立轉送區域」。
建立對接區域
DNS 對接功能可用於將來自某個區域命名空間的記錄要求,傳送到另一個虛擬私有雲網路。如需建立對接區域的操作說明,請參閱「建立對接區域」。
建立跨專案繫結區域
建立私人代管區域,可繫結至同組織內其他專案所擁有的網路。如要瞭解如何建立跨專案繫結區域,請參閱跨專案繫結區域。
更新代管區域
您可透過 Cloud DNS 修改代管公開或 代管私人區域的特定屬性。
更新公開區域
您可以變更公開區域的說明或 DNSSEC 設定。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要更新的公開區域。
按一下 「Edit」(編輯)。
如要變更 DNSSEC 設定,請在「DNSSEC」底下選擇「Off」(關閉)、「On」(開啟) 或「Transfer」(轉移)。詳情請參閱「為現有代管區域啟用 DNSSEC」。
選用:更新說明。
按一下「Save」(儲存)。
gcloud
請執行 dns managed-zones update 指令。
gcloud dns managed-zones update NAME \
--description=DESCRIPTION \
--dnssec-state=STATE
更改下列內容:
NAME:區域名稱DESCRIPTION:區域說明STATE:DNSSEC 設定,例如Off、On或Transfer
更新私人區域
您可以修改可顯示私人代管區域的 VPC 網路。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要更新的私人區域。
按一下 「Edit」(編輯)。
選取必須顯示私人區域的虛擬私有雲網路。只有所選的虛擬私有雲網路有權查詢該區域中的記錄。
按一下「Save」(儲存)。
gcloud
請執行 dns managed-zones update 指令。
gcloud dns managed-zones update NAME \
--description=DESCRIPTION \
--networks=VPC_NETWORK_LIST
更改下列內容:
NAME:區域名稱DESCRIPTION:區域說明VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路有權查詢該區域
更新標籤
如要新增標籤、變更現有標籤、移除所選標籤或清除代管區域的所有標籤,請完成下列步驟。
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=marketing或project=project1;詳情請參閱 SDK 說明文件
列出並說明代管區域
以下各節介紹如何列出或說明代管區域。
列出代管區域
如要列出專案中的所有代管區域,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
在右側窗格中查看代管區域。
gcloud
請執行 dns managed-zones list 指令。
gcloud dns managed-zones list
如要列出所有代管區域,請依下方內容修改指令:
gcloud dns managed-zones list
--filter="visibility=public"
gcloud dns managed-zones list \ --filter="visibility=private"
說明代管區域
如要查看代管區域的屬性,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要檢查的區域。
gcloud
請執行 dns managed-zones describe 指令。
gcloud dns managed-zones describe NAME
將 NAME 替換為您的區域名稱:
刪除代管區域
如果刪除區域,系統會永久移除其 DNS 記錄,且無法復原。為避免 DNS 記錄遺失,請先匯出區域資料再刪除區域。如要瞭解如何匯出區域資料,請參閱「匯入及匯出資源記錄集」。
如要刪除代管區域,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要刪除的代管區域。
按一下「Delete zone」(刪除區域)。
gcloud
移除區域中
SOA和NS以外的所有記錄。詳情請參閱「移除記錄」。將空白檔案匯入記錄集,即可快速清空整個區域。詳情請參閱匯入及匯出記錄集。例如:touch empty-file gcloud dns record-sets import -z NAME \ --delete-all-existing \ empty-file rm empty-file
將
NAME替換為您的區域名稱:如要刪除新的私人代管區域,請執行
dns managed-zones delete指令:gcloud dns managed-zones delete NAME
將
NAME替換為您的區域名稱:
後續步驟
- 如需解決 Cloud DNS 的常見使用問題,請參閱這篇文章。
- 如要設定 Cloud DNS 伺服器政策,並搭配虛擬私有雲網路使用這些政策,請參閱「套用 Cloud DNS 伺服器政策」。
- 如要在 Cloud DNS 中使用 IDN,請參閱「使用國際化網域名稱建立區域」。
- 如要顯示作業的稽核記錄,請參閱「查看代管區域的作業」。