Gerenciar autorizações de DNS

Esta seção descreve como criar e gerenciar autorizações DNS para uso com certificados gerenciados pelo Google.

Para mais informações sobre autorizações de DNS, consulte Como o Gerenciador de certificados funciona

Para saber como implantar um certificado com o Gerenciador de certificados, consulte a Visão geral da implantação.

Para mais informações sobre os comandos da CLI gcloud usados nesta página, consulte a API Certificate Manager.

Criar uma autorização de DNS

Para criar uma autorização DNS, siga as etapas desta seção. Como cada autorização de DNS abrange apenas um nome de domínio, é necessário criar uma autorização de DNS para cada nome de domínio que você quer usar com o certificado alvo.

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

Para concluir esta tarefa, é preciso ter um dos papéis a seguir no destino Projeto do Google Cloud:

  • Editor do Gerenciador de certificados
  • Proprietário do Gerenciador de certificados

Para mais informações, consulte Papéis e permissões.

gcloud

 gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
     --domain="DOMAIN_NAME" \
 gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

O tipo de autorização de DNS padrão para um certificado global gerenciado pelo Google é FIXED_RECORD. Para usar a autorização de DNS por projeto, execute o seguinte comando:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type="PER_PROJECT_RECORD" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Substitua:

  • AUTHORIZATION_NAME: um nome exclusivo que descreve essa autorização DNS.
  • DOMAIN_NAME: o nome do domínio para o qual você está criando essa autorização de DNS. O nome de domínio precisa ser um nome de domínio totalmente qualificado, como myorg.example.com.

Esse comando retorna o registro CNAME que você precisa adicionar à sua configuração de DNS. Exemplo:

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

Crie uma autorização de DNS fazendo uma solicitação POST ao dnsAuthorizations.create da seguinte forma:

POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud de destino.
  • AUTHORIZATION_NAME: um nome exclusivo que descreve essa autorização DNS.
  • DOMAIN_NAME: o nome do domínio para o qual você está criando essa autorização de DNS. O nome de domínio precisa ser um nome de domínio totalmente qualificado, como myorg.example.com.

Adicionar o registro CNAME à configuração de DNS

Quando você cria uma autorização de DNS, o Google Cloud retorna o registro CNAME correspondente para o subdomínio de validação. Você precisa adicionar esse registro CNAME à configuração de DNS na zona DNS do domínio de destino. Se você estiver usando o Google Cloud para gerenciar seu DNS, siga as etapas desta seção. Caso contrário, consulte a documentação da sua solução de DNS de terceiros.

Para mais informações sobre como o Gerenciador de certificados usa esse registro CNAME para verificar a propriedade do domínio, consulte Autorizações de domínio para certificados gerenciados pelo Google.

gcloud

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

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

    Substitua:

    • DNS_ZONE_NAME: o nome da zona de destino do DNS.
  2. Adicione o registro CNAME à zona DNS de destino:

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

    Substitua:

    • CNAME_RECORD: o valor total do registro CNAME retornados pelo comando gcloud que criou o DNS autorização.
    • DOMAIN_NAME: o nome do domínio de destino. O nome de domínio deve ser um nome de domínio totalmente qualificado, como myorg.example.com: Você também deve incluir o ponto final após o nome do domínio de destino.
    • DNS_ZONE_NAME: o nome da zona de DNS de destino.
  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: o nome da zona de DNS de destino.

Terraform

Para adicionar o registro CNAME à configuração do DNS, você pode usar 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]
}

Para mais informações sobre registros DNS, consulte Como gerenciar registros.

Atualizar uma autorização de DNS

Para atualizar uma autorização de DNS, siga as etapas desta seção. É possível atualizar uma autorização de DNS da seguinte maneira:

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

Para concluir esta tarefa, você precisa ter um dos seguintes papéis no projeto do Google Cloud de destino:

  • Editor do Gerenciador de certificados
  • Proprietário do Gerenciador de certificados

Para mais informações, consulte Papéis e permissões.

gcloud

 gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
     --update-labels="LABELS" \
     --description="DESCRIPTION"

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS de destino.
  • LABELS: uma sinalização opcional que especifica os rótulos das essa autorização de DNS.
  • DESCRIPTION: uma flag opcional que especifica a descrição dessa autorização DNS.

API

Atualize uma autorização de DNS fazendo uma solicitação PATCH ao dnsAuthorizations.patch. da seguinte forma:

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

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud de destino.
  • AUTHORIZATION_NAME: o nome da autorização DNS de destino.
  • DESCRIPTION: um campo opcional que especifica a para esta autorização de DNS.
  • LABEL_KEY: uma chave de rótulo aplicada a esta autorização de DNS.
  • LABEL_VALUE: um valor de rótulo aplicado a esta autorização de DNS.

Listar autorizações de DNS

Para listar as autorizações de DNS configuradas, conclua as etapas nesta seção.

Para concluir esta tarefa, é preciso ter um dos papéis a seguir no destino Projeto do Google Cloud:

  • Leitor do Gerenciador de certificados
  • Editor do Gerenciador de certificados
  • Proprietário do Gerenciador de certificados

Para mais informações, consulte Papéis e permissões.

gcloud

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

Substitua:

  • FILTER: uma expressão que restringe os resultados retornados a valores específicos. Por exemplo, é possível 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 você pode usar com Gerenciador de certificados, consulte Como classificar e filtrar resultados da 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 quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para uma ordem de classificação decrescente, prefixe o campo com um til (~).

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/global/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

Substitua:

  • PROJECT_ID: o ID do projeto de destino do Google Cloud.
  • FILTER: uma expressão que restringe os resultados retornados a valores específicos.
  • PAGE_SIZE: o número de resultados que serão retornados por página.
  • SORT_BY: uma lista delimitada por vírgulas de nomes de campo pelos quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para uma ordem de classificação decrescente, prefixe o campo com um til (~).

Excluir uma autorização de DNS

Para excluir uma autorização de DNS, siga as etapas desta seção. Para excluir um Autorização de DNS atribuída a uma ou mais contas gerenciadas pelo Google, exclua esses certificados antes de excluir a autorização de DNS.

Para concluir esta tarefa, você precisa ter a função de proprietário do administrador de certificados no projeto do Google Cloud de destino. Para mais informações, consulte Papéis e permissões.

gcloud

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS de destino.

API

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

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

Substitua:

  • PROJECT_ID: o ID do projeto de destino do Google Cloud.
  • AUTHORIZATION_NAME: o nome da autorização de DNS de destino.

A seguir