DNSSEC 키 보기

이 페이지에서는 도메인 이름 시스템 보안 확장 프로그램(DNSSEC) 키를 확인하는 방법을 설명합니다.

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 키를 확인하려면 DNSKEY 레코드가 생성되도록 관리형 영역이 생성되고 해당 영역에 DNSSEC가 사용 설정되어 있어야 합니다.

현재 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의 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
}

지정된 DNSKEY의 세부정보를 JSON 형식으로 표시하려면 요청 본문을 비워 둔 상태로 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 개요 참조하기