Gerenciar autorizações de DNS

Nesta seção, descrevemos 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 saber como 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 a API Certificate Manager.

Criar uma autorização de DNS

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

Para gerenciar certificados de forma independente em vários projetos, use a autorização de DNS por projeto (pré-lançamento). O Gerenciador de certificados pode processar 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 que você usa em um projeto são independentes e não interagem com os de outros projetos.

Para concluir esta tarefa, você precisa ter um dos seguintes papéis no projeto de destino 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évia), 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 de 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 totalmente qualificado, como myorg.example.com.

Esse comando retorna o registro CNAME que você precisa adicionar à 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 para o método dnsAuthorizations.create da seguinte maneira:

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 essa autorização de 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 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. Adicione esse registro CNAME à configuração de DNS na zona de DNS do domínio de destino. Se você estiver usando o Google Cloud para gerenciar seu DNS, conclua 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 DNS de destino.
  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 a autorização de DNS correspondente.
    • DOMAIN_NAME: o nome do domínio de destino. O nome de domínio precisa ser um nome de domínio totalmente qualificado, como myorg.example.com. Você também precisa 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 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]
}

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
  • Especificar uma nova descrição

Para concluir esta tarefa, você precisa ter um dos seguintes papéis no projeto de destino 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 de DNS de destino.
  • LABELS: uma sinalização opcional que especifica os rótulos dessa autorização de DNS.
  • DESCRIPTION: uma sinalização opcional que especifica a descrição dessa autorização de DNS.

API

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

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 de DNS de destino.
  • DESCRIPTION: um campo opcional que especifica a descrição dessa autorização de DNS.
  • LABEL_KEY: uma chave de rótulo aplicada a esta autorização de DNS.
  • LABEL_VALUE: um valor de marcador 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, você precisa ter um dos seguintes papéis no projeto de destino 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'
    • Marcadores e horário de 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 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 pelos quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para uma ordem de classificação decrescente, acrescente um til (~) como prefixo ao campo.

API

Liste todas as autorizações de 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 a serem retornados por página.
  • SORT_BY: uma lista delimitada por vírgulas de nomes de campos pelos quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para uma ordem de classificação decrescente, acrescente um til (~) como prefixo ao campo.

Excluir uma autorização de DNS

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

Para concluir essa tarefa, é preciso ter o papel de Proprietário do Gerenciador de certificados no projeto de destino do Google Cloud. 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 de DNS fazendo uma solicitação DELETE para o 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