Faça a gestão das autorizações de DNS

As autorizações de DNS permitem-lhe comprovar a propriedade de domínios para certificados geridos pela Google. Quando cria um certificado gerido pela Google, pode especificar uma ou mais autorizações de DNS para usar no aprovisionamento e na renovação.

Esta página descreve como criar e gerir autorizações de DNS para utilização com certificados geridos pela Google.

Para mais informações, consulte o artigo Autorizações de domínios.

Crie uma autorização de DNS

Uma autorização de DNS abrange apenas um único nome de domínio. Tem de criar uma autorização de DNS separada para cada nome de domínio que quer usar com o certificado de destino.

Se estiver a criar uma autorização de DNS para um certificado de caráter universal, como *.myorg.example.com, configure a autorização de DNS para o domínio principal, por exemplo, myorg.example.com.

Para gerir certificados de forma independente em vários projetos, pode usar a PER_PROJECT_RECORD autorização de DNS. O Certificate Manager pode processar a emissão e a gestão de certificados para cada projeto de forma independente no Google Cloud. As autorizações de DNS e os certificados que usa num projeto são autónomos e não interagem com os de outros projetos.

Consola

Pode criar uma autorização de DNS ou anexar uma autorização de DNS existente quando cria um certificado. Para mais informações, consulte o artigo Crie um certificado gerido pela Google que faça referência à autorização de DNS.

gcloud

Consoante os seus requisitos, pode criar qualquer um destes dois tipos de autorizações de DNS: FIXED_RECORD ou PER_PROJECT_RECORD. Para mais informações, consulte o artigo Autorização de DNS.

Autorização de DNS FIXED_RECORD

Para criar uma FIXED_RECORDautorização de DNS, use o seguinte gcloud certificate-manager dns-authorizations createcomando:

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

Substitua o seguinte:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.
  • LOCATION: a localização Google Cloud de destino onde cria a autorização de DNS.

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

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

O resultado é semelhante ao seguinte. No resultado, encontre a linha dnsResourceRecord e obtenha o registo CNAME (data, name e type) para adicionar à 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'

Autorização de DNS PER_PROJECT_RECORD

Para criar uma PER_PROJECT_RECORDautorização de DNS, use o seguinte gcloud certificate-manager dns-authorizations createcomando:

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

Substitua o seguinte:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.
  • LOCATION: a localização Google Cloud de destino onde cria a autorização de DNS.

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

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

O resultado é semelhante ao seguinte. No resultado, encontre a linha dnsResourceRecord e obtenha o registo CNAME (data, name e type) para adicionar à 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_ujmmovf2vn55tgye.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, pode usar 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 os comandos básicos do Terraform.

API

Para criar uma autorização de DNS, faça um pedido 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 o seguinte:

  • PROJECT_ID: o ID do Google Cloud projeto.
  • LOCATION: a localização Google Cloud de destino onde cria a autorização de DNS. Para a localização global, use global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.

Adicione o registo CNAME à configuração do DNS

Se estiver a usar uma solução DNS de terceiros para gerir o seu DNS, consulte a respetiva documentação para adicionar o registo CNAME à configuração do DNS. Se estiver a usar o Google Cloud para gerir o seu DNS, conclua os passos nesta secção.

Consola

Para criar um conjunto de registos, siga estes passos:

  1. Na Google Cloud consola, aceda à página Zonas de DNS.

    Aceda às zonas do Cloud DNS

  2. Clique no nome da zona DNS onde quer adicionar o registo.

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

  4. Na página Create record set, no campo DNS name, introduza o subdomínio da zona DNS.

    Ao introduzir o nome do subdomínio, certifique-se de que o nome do subdomínio, incluindo o texto esbatido apresentado no campo Nome DNS, corresponde ao valor completo do campo dnsResourceRecord.name, conforme apresentado no resultado do comando gcloud certificate-manager dns-authorizations describe.

    Veja os exemplos seguintes:

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

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

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

  5. No campo Tipo de registo de recursos, selecione CNAME.

  6. No campo TTL, introduza um valor numérico positivo para o tempo de vida do registo de recursos, que é o tempo durante o qual pode ser armazenado em cache.

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

  8. No campo Nome canónico, introduza o valor completo do campo dnsResourceRecord.data, conforme apresentado no resultado do comando gcloud certificate-manager dns-authorizations describe.

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

  10. Clique em Criar.

gcloud

Quando cria uma autorização de DNS, o comando da CLI gcloud devolve o registo CNAME correspondente. Para adicionar o registo CNAME à configuração do DNS na zona de DNS do domínio de destino, siga estes passos:

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

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

    Substitua DNS_ZONE_NAME pelo nome da zona DNS de destino.

  2. Adicione o registo 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 o seguinte:

    • CNAME_RECORD: o valor de dados completo do registo CNAME devolvido pelo comando da CLI Google Cloud que criou a autorização DNS correspondente.
    • VALIDATION_SUBDOMAIN_NAME: o subdomínio do prefixo da zona DNS, como _acme-challenge. Pode copiar o nome do registo TXT do registo de comandos, conforme descrito em Crie uma autorização de DNS.gcloud certificate-manager dns-authorizations describe
    • DOMAIN_NAME: o nome do domínio de destino.O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com. Também tem de incluir o ponto final após o nome do domínio de destino.
    • DNS_ZONE_NAME: o nome da zona DNS de destino.

    Veja o exemplo seguinte:

    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 de registo DNS para guardar as alterações:

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

    Substitua DNS_ZONE_NAME pelo nome da zona DNS de destino.

Terraform

Para adicionar o registo CNAME à configuração do DNS, pode usar um google_dns_record_set recurso.

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

Atualize uma autorização de DNS

Quando atualiza uma autorização de DNS, pode fazer o seguinte:

  • Especifique novas etiquetas
  • Especifique uma nova descrição

gcloud

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

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

Substitua o seguinte:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LABELS: etiquetas para esta autorização de DNS. Esta flag é opcional.
  • DESCRIPTION: descrição desta autorização de DNS. Esta flag é opcional.
  • LOCATION: a localização Google Cloud alvo. A localização predefinida é global.

API

Atualize uma autorização de DNS fazendo um pedido PATCH ao método dnsAuthorizations.patch da seguinte forma:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do Google Cloud projeto.
  • LOCATION: a localização Google Cloud alvo. A localização predefinida é global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DESCRIPTION: um campo opcional que especifica a descrição desta autorização de DNS.
  • LABEL_KEY: uma chave de etiqueta aplicada a esta autorização de DNS.
  • LABEL_VALUE: um valor de etiqueta aplicado a esta autorização de DNS.

Apresente autorizações de DNS

Pode ver todas as autorizações de DNS do seu projeto e os respetivos detalhes.

gcloud

Para apresentar uma lista de autorizações de DNS, use o certificate-manager dns-authorizations list comando:

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

Substitua o seguinte:

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

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

    • Domínio: --filter='domain=myorg.example.com'
    • Etiquetas e hora de criação: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Para ver mais exemplos de filtragem que pode usar com o Gestor de certificados, consulte Ordenar e filtrar resultados de listas na documentação do Serviço de gestão de chaves na nuvem.

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

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

  • SORT_BY: uma lista delimitada por vírgulas de campos name pelos quais os resultados devolvidos são ordenados. A ordem de ordenação predefinida é ascendente. Para usar a ordem de ordenação descendente, adicione um til (~) antes do campo.

  • LOCATION: a localização Google Cloud alvo. Para apresentar uma lista de autorizações de DNS de todas as regiões, use - como valor. A predefinição é -. Esta flag é opcional.

API

Liste todas as autorizações de DNS configuradas fazendo um pedido GET ao método dnsAuthorizations.list da seguinte forma:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do Google Cloud projeto.
  • LOCATION: a localização Google Cloud alvo. Para ver todas as autorizações de DNS em todas as localizações, especifique um único hífen (-).
  • FILTER: uma expressão que restringe os resultados devolvidos a valores específicos.

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

    • Domínio: --filter='domain=myorg.example.com'
    • Etiquetas e hora de criação: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: o número de resultados a devolver por página.

  • SORT_BY: uma lista delimitada por vírgulas de campos name pelos quais os resultados devolvidos são ordenados. A ordem de ordenação predefinida é ascendente. Para usar a ordem de ordenação descendente, adicione um til (~) antes do campo.

Elimine uma autorização de DNS

Para eliminar uma autorização de DNS atribuída a certificados geridos pela Google, elimine os certificados antes de eliminar a autorização de DNS.

gcloud

Para eliminar uma autorização de DNS, use o certificate-manager dns-authorizations deletecomando:

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

Substitua o seguinte:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LOCATION: a localização Google Cloud alvo. A localização predefinida é global.

API

Elimine uma autorização de DNS fazendo um pedido DELETE ao método dnsAuthorizations.delete da seguinte forma:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do Google Cloud projeto.
  • LOCATION: a localização Google Cloud alvo. A localização predefinida é global.
  • AUTHORIZATION_NAME: o nome da autorização de DNS.

O que se segue?