Criar, modificar e excluir zonas

Nesta página, você encontra instruções para criar, atualizar, listar e excluir zonas gerenciadas do Cloud DNS. Antes de usar esta página, familiarize-se com a visão geral do Cloud DNS e os Termos importantes.

Antes de começar

A API do Cloud DNS requer que você crie um projeto do Cloud DNS para ativá-la.

Se você estiver criando um aplicativo que usa a API REST, também precisará criar um ID do cliente do OAuth 2.0.

  1. Crie uma Conta do Google se ainda não tiver uma.
  2. Ative a API do Cloud DNS no console do Google Cloud. É possível escolher um projeto atual do Compute Engine ou App Engine, ou criar um projeto novo.
  3. Se você precisa fazer solicitações para a API REST, é necessário criar um ID do OAuth 2.0. Consulte Como configurar o OAuth 2.0.
  4. No projeto, observe as seguintes informações que serão necessárias nas próximas etapas:
    • O ID do cliente (xxxxxx.apps.googleusercontent.com).
    • O ID do projeto que você quer usar. Esse ID está na parte superior da página Visão geral no console do Google Cloud. Você também pode pedir ao usuário que forneça o nome do projeto a ser usado no seu app.

Se você ainda não executou a CLI do Google Cloud, execute o comando a seguir para especificar o nome do projeto e autenticar com o Console do Google Cloud:

gcloud auth login

Se você quiser executar um comando gcloud nos recursos do Google Cloud em outro projeto, especifique a opção --project para esse comando e para os outros comandos gcloud nesta página.

Criar zonas gerenciadas

Cada zona gerenciada que você cria é associada a um projeto do Google Cloud. Nas seções a seguir, você verá como criar o tipo de zona gerenciada compatível com o Cloud DNS.

Criar uma zona pública

Para criar uma nova zona gerenciada, conclua as etapas a seguir.

Console

  1. No Console do Google Cloud, acesse a página Criar uma zona de DNS.

    Acesse "Criar uma zona de DNS"

  2. Em Tipo de zona, selecione Público.

  3. Digite um nome de zona, como my-new-zone.

  4. Digite um sufixo de NOME DNS para a zona com um nome de domínio de sua propriedade. Todos os registros na zona compartilham esse sufixo, por exemplo: example.com.

  5. Em DNSSEC, selecione Desativado, Ativado, ou Transferência. Para mais informações, consulte Como ativar DNSSEC para zonas gerenciadas existentes.

  6. Clique em Criar. É exibida a página Detalhes da zona.

gcloud

Execute o comando dns managed-zones create:

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --labels=LABELS \
    --visibility=public

Substitua:

  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • DNS_SUFFIX: o sufixo DNS da sua zona, como example.com.
  • LABELS: uma lista opcional de pares de chave-valor, como dept=marketing ou project=project1. Para mais informações, consulte a documentação do SDK.

Terraform

resource "google_dns_managed_zone" "example_zone" {
  name        = "example-zone"
  dns_name    = "example-${random_id.rnd.hex}.com."
  description = "Example DNS zone"
  labels = {
    name = "value"
  }
}

resource "random_id" "rnd" {
  byte_length = 4
}

API

Envie uma solicitação POST usando o método managedZones.create:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{
  "name": "NAME",
  "description": "DESCRIPTION",
  "dnsName": "DNS_NAME",
  "visibility": "public"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a zona gerenciada foi criada;
  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • DNS_NAME: o sufixo DNS da sua zona, como example.com.

Criar uma zona particular

Para criar uma nova zona privada gerenciada com registros DNS particulares gerenciados pelo Cloud DNS, conclua as etapas a seguir. Para acessar mais informações, consulte as práticas recomendadas para as zonas particulares do Cloud DNS.

Console

  1. No Console do Google Cloud, acesse a página Criar uma zona de DNS.

    Acesse "Criar uma zona de DNS"

  2. Em Tipo de zona, selecione Private.

  3. Digite um nome de zona, como my-new-zone.

  4. Insira um sufixo de nome DNS para a zona particular. Todos os registros na zona compartilham esse sufixo, por exemplo: example.private.

  5. Opcional: adicione uma descrição.

  6. Em Opções, selecione Padrão (privado).

  7. Selecione as redes da nuvem privada virtual (VPC) em que a zona precisa estar visível. Somente as redes VPC selecionadas estão autorizadas a consultar registros na zona.

  8. Clique em Criar

gcloud

Execute o comando dns managed-zones create:

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --labels=LABELS \
    --visibility=private

Substitua:

  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • DNS_SUFFIX: o sufixo DNS da sua zona, como example.private.
  • VPC_NETWORK_LIST: uma lista delimitada por vírgulas de redes VPC que estão autorizadas a consultar a zona.
  • LABELS: uma lista opcional de pares de chave-valor, como dept=marketing ou project=project1. Para mais informações, consulte a documentação do SDK.

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

API

Envie uma solicitação POST usando o método managedZones.create:

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
        },
        ....
    ]
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a zona gerenciada foi criada;
  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • DNS_NAME: o sufixo DNS da sua zona, como example.private;
  • VPC_NETWORK_1 e VPC_NETWORK_2: URLs para redes VPC no mesmo projeto que podem consultar registros nessa zona. É possível adicionar várias redes VPC conforme indicado. Para determinar o URL de uma rede VPC, use o seguinte comando gcloud, substituindo VPC_NETWORK_NAME pelo nome da rede:

    gcloud compute networks describe VPC_NETWORK_NAME \
     --format="get(selfLink)"
    

Criar uma zona com permissões específicas do IAM

Com a permissão do Identity and Access Management (IAM) em cada zona gerenciada de recursos individuais, é possível configurar permissões específicas de leitura, gravação ou administração para diferentes zonas gerenciadas no mesmo projeto.

Para instruções sobre como criar uma zona com permissões específicas do Identity and Access Management (IAM), consulte Criar uma zona com permissões específicas do IAM.

Criar uma zona DNS do diretório de serviços

É possível criar uma zona do diretório de serviços que permita que os serviços baseados no Google Cloud consultem seu namespace do diretório de serviços por meio de DNS.

Para instruções detalhadas sobre como criar uma zona DNS do Diretório de serviços, consulte Como configurar uma zona DNS do Diretório de serviços.

Para instruções sobre como usar o DNS para consultar seu diretório de serviços, consulte Como fazer consultas usando DNS.

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

Criar uma zona particular de pesquisa reversa gerenciada

Uma zona de pesquisa reversa gerenciada é uma zona particular com um atributo especial que instrui o Cloud DNS a realizar pesquisas de PTR em dados de DNS do Compute Engine. Você precisa configurar esse tipo de zona no Cloud DNS para resolver corretamente os registros PTR que não são RFC 1918 das suas instâncias de máquina virtual.

Para instruções sobre como criar uma nova zona particular de pesquisa reversa gerenciada, consulte Criar uma zona de pesquisa reversa gerenciada.

Criar uma zona de encaminhamento

As zonas de encaminhamento permitem segmentar servidores de nomes para zonas particulares específicas. Para ver instruções sobre como criar uma nova zona de encaminhamento particular gerenciada, consulte Criar uma zona de encaminhamento.

Criar uma zona de peering

Com o peering de DNS, é possível enviar solicitações para registros provenientes do namespace de uma zona a outra rede VPC. Para instruções sobre como criar uma zona de peering, consulte Criar uma zona de peering.

Criar uma zona de vinculação entre projetos

Crie uma zona particular gerenciada que possa ser vinculada a uma rede que pertença a um projeto diferente na mesma organização. Para ver instruções sobre como criar uma zona desse tipo, consulte Zonas de vinculação entre projetos.

Atualizar zonas gerenciadas

O Cloud DNS permite modificar determinados atributos da sua zona pública ou privada gerenciada.

Atualizar zonas públicas

É possível alterar a descrição ou a configuração de DNSSEC de uma zona pública.

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona pública que você quer atualizar.

  3. Clique em Editar.

  4. Para alterar as configurações de DNSSEC, em DNSSEC, selecione Desativado, Ativado ou Transferência. Para mais informações, consulte Como ativar a DNSSEC para zonas gerenciadas atuais.

  5. Opcional: atualize a descrição.

  6. Clique em Save.

gcloud

Execute o comando dns managed-zones update:

gcloud dns managed-zones update NAME \
    --description=DESCRIPTION \
    --dnssec-state=STATE

Substitua:

  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • STATE: uma configuração de DNSSEC, como Off, On ou Transfer.

Para modificar as redes VPC em que uma zona particular está visível:

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona particular que você quer atualizar.

  3. Clique em Editar.

  4. Selecione as redes VPC em que a zona privada precisa estar visível. Somente as redes VPC selecionadas estão autorizadas a consultar registros na zona.

  5. Clique em Salvar.

gcloud

Execute o comando dns managed-zones update:

gcloud dns managed-zones update NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST

Substitua:

  • NAME: um nome para a zona;
  • DESCRIPTION: uma descrição para a zona;
  • VPC_NETWORK_LIST: uma lista delimitada por vírgulas de redes VPC que estão autorizadas a consultar a zona.

Atualizar rótulos

Para adicionar, alterar, remover ou remover todos os rótulos em uma zona gerenciada, conclua as etapas a seguir.

gcloud

Execute o comando 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

Substitua:

  • NAME: um nome para a zona;
  • LABELS: uma lista opcional de pares de chave-valor, como dept=marketing ou project=project1. Para mais informações, consulte a documentação do SDK.

Listar e descrever zonas gerenciadas

Veja nas seções a seguir como listar ou descrever uma zona gerenciada.

Listar zonas gerenciadas

Para listar todas as zonas gerenciadas em um projeto, conclua as etapas a seguir.

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Veja as zonas gerenciadas no painel à direita.

gcloud

Execute o comando dns managed-zones list:

gcloud dns managed-zones list

Para listar todas as zonas gerenciadas, modifique o comando da seguinte maneira:

gcloud dns managed-zones list 
--filter="visibility=public"
Para listar todas as zonas particulares gerenciadas, modifique o comando da seguinte maneira:

gcloud dns managed-zones list \
   --filter="visibility=private"

Descrever uma zona gerenciada

Para visualizar os atributos de uma zona gerenciada, conclua as etapas a seguir.

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona que você quer inspecionar.

gcloud

Execute o comando dns managed-zones describe:

gcloud dns managed-zones describe NAME

Substitua NAME pelo nome da zona.

Excluir uma zona gerenciada

Quando você exclui uma zona, os registros de DNS dela são removidos permanentemente. Não é possível recuperá-los. Para evitar a perda de registros DNS, exporte os dados da zona antes da exclusão. Para informações sobre como exportar dados de zona, consulte Importar e exportar conjuntos de registros de recursos.

Para excluir uma zona gerenciada, conclua as etapas a seguir.

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona gerenciada que você quer excluir.

  3. Clique em Excluir zona.

gcloud

  1. Remova todos os registros na zona, exceto os registros SOA e NS. Para mais informações, consulte Como remover um registro. É possível esvaziar rapidamente uma zona inteira importando um arquivo vazio para um conjunto de registros. Para mais informações, consulte Como importar e exportar conjuntos de registros. Exemplo:

    touch empty-file
    gcloud dns record-sets import -z NAME \
       --delete-all-existing \
       empty-file
    rm empty-file
    

    Substitua NAME pelo nome da zona.

  2. Para excluir uma nova zona particular gerenciada, execute o comando dns managed-zones delete:

    gcloud dns managed-zones delete NAME
    

    Substitua NAME pelo nome da zona.

A seguir