Gerenciar autorizações de DNS

Esta seção descreve como criar e gerenciar autorizações de 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 aprender a implantar um certificado com o Gerenciador de certificados, consulte Visão geral da implantação.

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

Criar uma autorização de DNS

Para criar uma autorização de DNS, conclua as etapas nesta 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 de destino.

Para gerenciar certificados de forma independente em vários projetos, você pode usar autorização de DNS por projeto. O Gerenciador de certificados pode gerenciar a emissão e o gerenciamento de certificados para cada projeto de maneira 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.

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

Para usar a autorização de DNS por projeto (Pré-lançamento), faça o seguinte: 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 isso Autorização de DNS.
  • DOMAIN_NAME: o nome do domínio que 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 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 google_certificate_manager_dns_authorization recurso.

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 de destino do Google Cloud.
  • AUTHORIZATION_NAME: um nome exclusivo que descreve isso Autorização de DNS.
  • DOMAIN_NAME: o nome do domínio que você está criando essa autorização de DNS. O nome de domínio deve ser um domínio nome de domínio, 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ê deve adicionar este registro CNAME à configuração do DNS na zona de DNS do domínio de destino. Se você estiver usando o Google Cloud para gerenciar seu DNS, conclua as etapas em nesta seção. Caso contrário, consulte a documentação do seu DNS de terceiros solução.

Para mais informações sobre como o Gerenciador de certificados usa este registro CNAME para confirmar 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 retornado pelo comando gcloud que criou o DNS correspondente autorização.
    • 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 deve incluir o ponto final após o nome de domínio de destino.
    • DNS_ZONE_NAME: o nome da zona de destino do DNS.
  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, é 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 update AUTHORIZATION_NAME \
     --update-labels="LABELS" \
     --description="DESCRIPTION"

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização DNS de destino.
  • LABELS: uma sinalização opcional que especifica os rótulos das essa autorização de DNS.
  • DESCRIPTION: uma sinalização opcional que especifica o para esta autorização de 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 de destino do Google Cloud.
  • 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 essa 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, siga as etapas nesta seção.

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

  • 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 o resultados a valores específicos. Por exemplo, é possível filtrar os resultados pelo seguintes critérios:

    • Domínio: --filter='domain=myorg.example.com'
    • Marcadores e data/hora de 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 de DNS configuradas fazendo uma solicitação GET para o método dnsAuthorizations.list desta 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 o resultados 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, é necessário ter o papel de Proprietário do Gerenciador de certificados na ao 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 do DNS de destino. autorização.

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 do DNS de destino. autorização.

A seguir