查看 DNSSEC 金鑰

本頁面說明如何查看網域名稱系統安全性擴充功能 (DNSSEC) 金鑰。

如需 DNSSEC 的概念總覽,請參閱 DNSSEC 總覽

DNSKEY 是包含公開簽署金鑰的 DNS 記錄類型。如果您要將 DNSSEC 簽署區域遷移至其他 DNS 營運商,可能需要查看 DNSKEY 記錄。RFC 6781 中的遷移程序需要將區域簽署金鑰 (ZSK) 和金鑰簽署金鑰 (KSK) DNSKEY 從 Cloud DNS 區域匯入其他營運商的區域。

如果您已為區域啟用 DNSSEC,Cloud DNS 會自動管理 DNSSEC 金鑰的建立和輪替作業 (DNSKEY 記錄),以及資源記錄數位簽章 (RRSIG) 記錄的區域資料簽署作業。Cloud DNS 不支援 KSK 的自動輪替功能,因為 KSK 輪替目前需要與網域註冊商進行人工手動互動。不過,Cloud DNS 會執行完全自動的 ZSK 輪替作業。您可以使用 Google Cloud CLI 或 REST API 查看自動管理的 DNSKEY。

事前準備

查看 DNSSEC 金鑰之前,您必須先建立代管區域,並啟用該區域的 DNSSEC,然後才能建立 DNSKEY 記錄。

顯示目前的 DNSKEY

如要顯示區域的當前 DNSKEY 記錄,請按照下列步驟操作。

gcloud

針對下列 gcloud 指令列範例,您可以指定 --project 參數,以便針對特定專案執行操作。

如要以 JSON 格式列出所有 DNSKEY,請使用 gcloud dns dns-keys list 指令:

gcloud dns dns-keys list --zone ZONE_NAME

ZONE_NAME 替換為代管區域的名稱。

如要以 JSON 格式顯示指定 DNSKEY 的詳細資料,請使用 gcloud dns dns-keys describe 指令:

gcloud dns dns-keys describe DNSKEY_ID --zone ZONE_NAME

更改下列內容:

  • DNSKEY_ID:您要查看詳細資料的 DNSKEY ID
  • ZONE_NAME:代管可用區的名稱

API

如要將所有 DNSKEY 列印到 ResourceRecordSet 集合,請使用 dnsKeys.get 方法,並搭配空白要求主體:

GET https://dns.googleapis.com/dns/v1/projects/PROJECT/managedZones/ZONE_NAME/dnsKeys

更改下列內容:

  • PROJECT:DNS 專案的名稱或 ID
  • ZONE_NAME:代管可用區的名稱

輸出內容會與下列內容相似:

{
  "kind": "dns#dnsKeysListResponse",
  "header": {
    "operationId": string
  },
  "dnsKeys": [
    dnsKeys Resource
  ],
  "nextPageToken": string
}

如要以 JSON 格式顯示指定 DNSKEY 的詳細資料,請使用 dnsKeys DNSKEY_ID.get 方法搭配空白要求主體:

GET https://dns.googleapis.com/dns/v1/projects/PROJECT/managedZones/ZONE_NAME/dnsKeys/DNSKEY_ID

更改下列內容:

  • PROJECT:DNS 專案的名稱或 ID
  • ZONE_NAME:代管可用區的名稱
  • DNSKEY_ID:您要查看詳細資料的 DNSKEY ID

Python

  from apiclient import errors
  from apiclient.discovery import build

  PROJECT_NAME= 'PROJECT_NAME'
  ZONE_NAME= 'ZONE_NAME'

  try:
    service = build('dns', 'v1')
    response = service.dnskeys().list(project=PROJECT_NAME,
                                      managedZone=ZONE_NAME).execute()
  except errors.HttpError, error:
    print 'An error occurred: %s' % error

  try:
    response = service.dnskeys().list(project=PROJECT_NAME,
                                      managedZone=ZONE_NAME,
                                      keyId=KEY_ID).execute()
  except errors.HttpError, error:
    print 'An error occurred: %s' % error

更改下列內容:

  • PROJECT_NAME:DNS 專案的名稱或 ID
  • ZONE_NAME:代管可用區的名稱

後續步驟

  • 如要瞭解特定 DNSSEC 設定的相關資訊,請參閱「使用進階 DNSSEC」一文。
  • 如要監控變更,請參閱「監控 DNS 傳播」。
  • 如要找出使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱「疑難排解」。
  • 如要瞭解 Cloud DNS 的總體概況,請參閱 Cloud DNS 總覽