このページでは、DNSSEC(Domain Name System Security Extensions)鍵を表示する方法について説明します。
DNSSEC のコンセプトの概要については、DNSSEC の概要をご覧ください。
DNSKEY は公開署名鍵を含む DNS レコードタイプです。DNSSEC で署名されたゾーンを別の DNS オペレーターに移行する場合、DNSKEY レコードの確認が必要になることがあります。RFC 6781 の移行プロセスでは、Cloud DNS ゾーンのゾーン署名鍵(ZSK)と鍵署名鍵(KSK)DNSKEY を別のオペレーターのゾーンにインポートする必要があります。
ゾーンに対して DNSSEC を有効にしている場合、Cloud DNS は、DNSSEC 鍵(DNSKEY レコード)の作成とローテーション、リソース レコードのデジタル署名(RRSIG)レコードによるゾーンデータの署名を自動的に管理します。KSK のローテーションにはドメイン登録事業者の手動での操作が必要であるため、Cloud DNS は KSK の自動ローテーションをサポートしていません。ただし、Cloud DNS は ZSK の完全自動ローテーションは実行します。Google Cloud CLI または REST API を使用して、自動管理 DNSKEY を表示できます。
始める前に
DNSSEC 鍵を表示するには、マネージド ゾーンを作成し、このゾーンに対して DNSSEC を有効化して DNSKEY レコードが作成されるようにする必要があります。
現在の DNSKEY を表示する
ゾーンの現在の DNSKEY レコードを表示するには、次の手順を行います。
gcloud
次の gcloud
コマンドラインの例では、--project
パラメータを指定することで、特定のプロジェクトで操作できます。
すべての DNSKEY を JSON 形式で出力するには、gcloud dns dns-keys list
コマンドを使用します。
gcloud dns dns-keys list --zone ZONE_NAME
ZONE_NAME
は、マネージド ゾーンの名前に置き換えます。
指定した DNSKEY の詳細を JSON 形式で表示するには、gcloud dns dns-keys describe
コマンドを使用します。
gcloud dns dns-keys describe DNSKEY_ID --zone ZONE_NAME
以下を置き換えます。
DNSKEY_ID
: 詳細を表示する DNSKEY の IDZONE_NAME
: マネージド ゾーンの名前
API
すべての DNSKEY を ResourceRecordSet
コレクションに出力するには、空のリクエスト本文を付けて dnsKeys.get
メソッドを使用します。
GET https://dns.googleapis.com/dns/v1/projects/PROJECT/managedZones/ZONE_NAME/dnsKeys
以下を置き換えます。
PROJECT
: DNS プロジェクトの名前または IDZONE_NAME
: マネージド ゾーンの名前
出力は次のようになります。
{ "kind": "dns#dnsKeysListResponse", "header": { "operationId": string }, "dnsKeys": [ dnsKeys Resource ], "nextPageToken": string }
指定した DNSKEY の詳細を JSON 形式で表示するには、空のリクエスト本文を付けて dnsKeys DNSKEY_ID.get
メソッドを使用します。
GET https://dns.googleapis.com/dns/v1/projects/PROJECT/managedZones/ZONE_NAME/dnsKeys/DNSKEY_ID
以下を置き換えます。
PROJECT
: DNS プロジェクトの名前または IDZONE_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 プロジェクトの名前または IDZONE_NAME
: マネージド ゾーンの名前
次のステップ
- 特定の DNSSEC 構成に関する情報を取得するには、高度な DNSSEC を使用するをご覧ください。
- 変更をモニタリングするには、DNS 伝搬のモニタリングをご覧ください。
- Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。
- Cloud DNS の概要については、Cloud DNS の概要をご覧ください。