Como visualizar chaves de DNSSEC

A DNSKEY é um tipo de registro DNS que contém uma chave de assinatura pública. Talvez seja necessário ver os registros DNSKEY em alguns casos. Por exemplo, se você está migrando uma zona com assinatura DNSSEC para outro operador de DNS, o processo no RFC 6781 requer a importação das DNSKEYs de chave de assinatura de zona (ZSK, na sigla em inglês) e chave de assinatura de chave (KSK, na sigla em inglês) da zona do Cloud DNS para a zona do outro operador.

Se o DNSSEC está ativado em uma zona, o Cloud DNS gerencia automaticamente a criação e a rotação das chaves correspondentes (registros DNSKEY) e a assinatura dos dados da zona com registros RRSIG. O Cloud DNS não aceita rotação automática de KSKs porque atualmente elas exigem uma interação manual com o registrador de domínio. No entanto, ele executa a rotação de ZSKs automaticamente. Você pode ver as DNSKEY gerenciadas automaticamente com a ferramenta de linha de comando ou a API REST.

Antes de começar

Antes de ver as chaves de DNSSEC, você precisa criar uma zona gerenciada e ativar a DNSSEC na zona para que os registros DNSKEY sejam gerados.

Para todos os exemplos de linhas de comando gcloud abaixo, é possível especificar o parâmetro --project para operar em um projeto diferente.

Como exibir as DNSKEYs atuais

Para exibir os registros DNSKEY atuais da sua zona:

Linha de comando

gcloud dns dns-keys list --zone [ZONE_NAME]

Este comando mostra todas as DNSKEYs no formato JSON.

gcloud dns dns-keys describe --zone [ZONE_NAME] [KEY_ID]

Este comando mostra a DNSKEY especificada no formato JSON.

Python

      from apiclient import errors
      from apiclient.discovery import build

      PROJECT_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
    

Próximas etapas