Gerenciar autorizações de DNS

As autorizações de DNS permitem provar a propriedade de domínios para certificados gerenciados pelo Google. Ao criar um certificado gerenciado pelo Google, é possível especificar uma ou mais autorizações de DNS para uso no provisionamento e na renovação.

Esta página descreve como criar e gerenciar autorizações de DNS para uso com certificados gerenciados pelo Google.

Para mais informações, consulte Autorizações de domínio.

Criar uma autorização de DNS

Uma autorização de DNS abrange apenas um nome de domínio. É necessário criar uma autorização DNS separada para cada nome de domínio que você quer usar com o certificado alvo.

Se você estiver criando uma autorização de DNS para um certificado curinga, como *.myorg.example.com, configure a autorização de DNS para o domínio pai, por exemplo, myorg.example.com.

Para gerenciar certificados de forma independente em vários projetos, use a autorização de DNS PER_PROJECT_RECORD. O Gerenciador de certificados pode emitir e gerenciar certificados para cada projeto de forma independente no Google Cloud. As autorizações e os certificados de DNS usados em um projeto são independentes e não interagem com os de outros projetos.

Console

É possível criar uma autorização DNS ou anexar uma autorização DNS existente ao criar um certificado. Para mais informações, consulte Criar um certificado gerenciado pelo Google que faça referência à autorização DNS.

gcloud

Para criar uma autorização de DNS, use o comando certificate-manager dns-authorizations create:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    [--type=TYPE] \
    [–-location="LOCATION"]

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio de destino para o qual você está criando essa autorização de DNS. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.
  • TYPE: o tipo de autorização de DNS. É possível especificar FIXED_RECORD ou PER_PROJECT_RECORD. Para mais informações, consulte Autorização de DNS.
  • LOCATION: o local Google Cloud de destino em que você cria a autorização de DNS.

Depois de criar a autorização de DNS, verifique-a com o comando certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

A resposta será semelhante a esta: Na saída, encontre a linha dnsResourceRecord e extraia o registro CNAME (data, name e type) para adicionar à sua configuração de DNS.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.myorg.example.com.
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

Para criar uma autorização de DNS, use um recurso google_certificate_manager_dns_authorization.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

API

Para criar uma autorização DNS, faça uma solicitação POST ao método dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: o local Google Cloud de destino em que você cria a autorização de DNS. Para o local global, use global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio de destino para o qual você está criando essa autorização de DNS. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.

Adicionar o registro CNAME à configuração de DNS

Se você estiver usando uma solução de DNS de terceiros para gerenciar seu DNS, consulte a documentação dela para adicionar o registro CNAME à configuração de DNS. Se você estiver usando o Google Cloud para gerenciar seu DNS, siga as etapas desta seção.

Console

Para criar um conjunto de registros, siga estas etapas:

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

    Acessar zonas do Cloud DNS

  2. Clique no nome da zona de DNS em que você quer adicionar o registro.

  3. Na página Detalhes da zona, clique em Adicionar padrão.

  4. Na página Criar conjunto de registros, no campo Nome do DNS, insira o subdomínio da zona de DNS.

    Ao inserir o nome do subdomínio, verifique se o nome do subdomínio, incluindo o texto esmaecido exibido no campo Nome do DNS, corresponde ao valor completo do campo dnsResourceRecord.name, conforme mostrado na saída do comando gcloud certificate-manager dns-authorizations describe.

    Veja os exemplos a seguir:

    • Se o valor do campo dnsResourceRecord.name for _acme-challenge.myorg.example.com. e o texto esmaecido no campo Nome do DNS for .example.com., digite _acme-challenge.myorg.

    • Se o valor do campo dnsResourceRecord.name for _acme-challenge.myorg.example.com. e o texto esmaecido no campo Nome do DNS for .myorg.example.com., digite _acme-challenge.

    • Se o valor do campo dnsResourceRecord.name for _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. e o texto esmaecido no campo Nome do DNS for .myorg.example.com., digite _acme-challenge_ujmmovf2vn55tgye.

  5. No campo Tipo de registro de recurso, selecione CNAME.

  6. No campo TTL, insira um valor numérico positivo para o time to live (TTL) do registro de recursos, que é o tempo que ele pode ser armazenado em cache.

  7. Na lista Unidade TTL, selecione a unidade de tempo. Por exemplo, 30 minutes.

  8. No campo Nome canônico, insira o valor completo do campo dnsResourceRecord.data conforme mostrado na saída do comando gcloud certificate-manager dns-authorizations describe.

  9. Para inserir informações adicionais, clique em Adicionar item.

  10. Clique em Criar.

gcloud

Ao criar uma autorização de DNS, o comando da CLI gcloud retorna o registro CNAME correspondente. Para adicionar o registro CNAME à configuração de DNS na zona DNS do domínio de destino, siga estas etapas:

  1. Inicie a transação do registro DNS:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Substitua DNS_ZONE_NAME pelo nome da zona de DNS de destino.

  2. Adicione o registro CNAME à zona DNS de destino:

    gcloud dns record-sets transaction add CNAME_RECORD \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    Substitua:

    • CNAME_RECORD: o valor de dados completo do registro CNAME retornado pelo comando da CLI do Google Cloud que criou a autorização DNS correspondente.
    • VALIDATION_SUBDOMAIN_NAME: o subdomínio de prefixo da zona DNS, como _acme-challenge. Você pode copiar o nome do registro de comando gcloud certificate-manager dns-authorizations describe, conforme descrito em Criar uma autorização de DNS.
    • DOMAIN_NAME: o nome do domínio de destino.O nome de domínio precisa ser totalmente qualificado, como myorg.example.com. Você também precisa incluir o ponto final após o nome de domínio de destino.
    • DNS_ZONE_NAME: o nome da zona de DNS de destino.

    Veja o exemplo a seguir:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. Execute a transação do registro DNS para salvar as alterações:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Substitua DNS_ZONE_NAME pelo nome da zona de DNS de destino.

Terraform

Para adicionar o registro CNAME à configuração de DNS, use um recurso google_dns_record_set.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

Atualizar uma autorização de DNS

Ao atualizar uma autorização de DNS, é possível fazer o seguinte:

  • Especificar novos rótulos
  • Especifique uma nova descrição

gcloud

Para atualizar uma autorização DNS, use o comando certificate-manager dns-authorizations update:

gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
    [--update-labels="LABELS"] \
    [--description="DESCRIPTION"] \
    [--location="LOCATION"]

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LABELS: rótulos para essa autorização de DNS. Essa sinalização é opcional.
  • DESCRIPTION: descrição dessa autorização de DNS. Essa sinalização é opcional.
  • LOCATION: o local Google Cloud de destino. O local padrão é global.

API

Atualize uma autorização DNS fazendo uma solicitação PATCH ao método dnsAuthorizations.patch da seguinte maneira:

PATCH /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME?updateMask=labels,description"
{
    description: "DESCRIPTION",
    labels: { "LABEL_KEY": "LABEL_VALUE" }
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: o local Google Cloud de destino. O local padrão é global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DESCRIPTION: um campo opcional que especifica a descrição dessa autorização DNS.
  • LABEL_KEY: uma chave de rótulo aplicada a essa autorização de DNS.
  • LABEL_VALUE: um valor de rótulo aplicado a essa autorização de DNS.

Listar autorizações de DNS

Você pode conferir todas as autorizações de DNS do seu projeto e os detalhes delas.

gcloud

Para listar as autorizações de DNS, use o comando certificate-manager dns-authorizations list:

gcloud certificate-manager dns-authorizations list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY" \
    [--location="LOCATION"]

Substitua:

  • FILTER: uma expressão que restringe os resultados retornados a valores específicos.

    Por exemplo, você pode filtrar os resultados pelos seguintes critérios:

    • Domínio: --filter='domain=myorg.example.com'
    • Rótulos e horário da criação: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Para mais exemplos de filtragem que podem ser usados com o Gerenciador de certificados, consulte Como ordenar e filtrar resultados de lista na documentação do Cloud Key Management Service.

  • PAGE_SIZE: o número de resultados a serem retornados por página.

  • LIMIT: o número máximo de resultados a serem retornados.

  • SORT_BY: uma lista delimitada por vírgulas de campos name por que os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para classificar em ordem decrescente, prefixe o campo com um til (~).

  • LOCATION: o local Google Cloud de destino. O local padrão é global.

API

Liste todas as autorizações DNS configuradas fazendo uma solicitação GET para o método dnsAuthorizations.list da seguinte maneira:

GET /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: o local Google Cloud de destino. O local padrão é global.
  • FILTER: uma expressão que restringe os resultados retornados a valores específicos.

    Por exemplo, você pode filtrar os resultados pelos seguintes critérios:

    • Domínio: --filter='domain=myorg.example.com'
    • Rótulos e horário da criação: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: o número de resultados a serem retornados por página.

  • SORT_BY: uma lista delimitada por vírgulas de campos name por que os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para classificação em ordem decrescente, prefixe o campo com um til (~).

Excluir uma autorização de DNS

Para excluir uma autorização de DNS atribuída a certificados gerenciados pelo Google, exclua os certificados antes de excluir a autorização de DNS.

gcloud

Para excluir uma autorização de DNS, use o comando certificate-manager dns-authorizations delete:

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME \
    [--location="LOCATION"]

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LOCATION: o local Google Cloud de destino. O local padrão é global.

API

Exclua uma autorização DNS fazendo uma solicitação DELETE para o método dnsAuthorizations.delete da seguinte maneira:

DELETE /v1/projects/PROJECT_ID/locations/LOCATION>/dnsAuthorizations/AUTHORIZATION_NAME

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: o local Google Cloud de destino. O local padrão é global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.

A seguir