Gestionar autorizaciones de DNS

Las autorizaciones de DNS te permiten demostrar la propiedad de los dominios de los certificados gestionados por Google. Al crear un certificado gestionado por Google, se pueden especificar una o varias autorizaciones de DNS para usarlas en el aprovisionamiento y la renovación.

En esta página se describe cómo crear y gestionar autorizaciones de DNS para usarlas con certificados gestionados por Google.

Para obtener más información, consulta Autorizaciones de dominio.

Crear una autorización de DNS

Una autorización de DNS solo cubre un nombre de dominio. Debes crear una autorización de DNS independiente para cada nombre de dominio que quieras usar con el certificado de destino.

Si vas a crear una autorización de DNS para un certificado comodín, como *.myorg.example.com, configura la autorización de DNS para el dominio principal (por ejemplo, myorg.example.com).

Para gestionar certificados de forma independiente en varios proyectos, puedes usar la PER_PROJECT_RECORD autorización de DNS. Certificate Manager puede emitir y gestionar certificados para cada proyecto de forma independiente en Google Cloud. Las autorizaciones de DNS y los certificados que uses en un proyecto son independientes y no interactúan con los de otros proyectos.

Consola

Puedes crear una autorización de DNS o adjuntar una que ya tengas al crear un certificado. Para obtener más información, consulta Crear un certificado gestionado por Google que haga referencia a la autorización de DNS.

gcloud

En función de tus requisitos, puedes crear cualquiera de estos dos tipos de autorizaciones de DNS: FIXED_RECORD o PER_PROJECT_RECORD. Para obtener más información, consulta Autorización de DNS.

Autorización de DNS FIXED_RECORD

Para crear una autorización de DNS FIXED_RECORD, usa el siguiente comando gcloud certificate-manager dns-authorizations create:

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

Haz los cambios siguientes:

  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • DOMAIN_NAME: el nombre del dominio de destino para el que estás creando esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com.
  • LOCATION: la ubicación Google Cloud de destino en la que creas la autorización de DNS.

Después de crear la autorización de DNS FIXED_RECORD, verifícala con el comando gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

La salida es similar a la siguiente. En el resultado, busca la línea dnsResourceRecord y obtén el registro CNAME (data, name y type) para añadirlo a tu configuración 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'

Autorización de DNS PER_PROJECT_RECORD

Para crear una autorización de DNS PER_PROJECT_RECORD, usa el siguiente gcloud certificate-manager dns-authorizations createcomando:

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

Haz los cambios siguientes:

  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • DOMAIN_NAME: el nombre del dominio de destino para el que estás creando esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com.
  • LOCATION: la ubicación Google Cloud de destino en la que creas la autorización de DNS.

Después de crear la autorización de DNS de PER_PROJECT_RECORD, verifícala con el comando gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

La salida es similar a la siguiente. En el resultado, busca la línea dnsResourceRecord y obtén el registro CNAME (data, name y type) para añadirlo a tu configuración 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 crear una autorización de DNS, puedes usar un 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 cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

API

Para crear una autorización de DNS, haz una solicitud POST al 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
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del Google Cloud proyecto.
  • LOCATION: la ubicación Google Cloud de destino en la que creas la autorización de DNS. Para la ubicación mundial, usa global.
  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • DOMAIN_NAME: el nombre del dominio de destino para el que estás creando esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com.

Añadir el registro CNAME a tu configuración de DNS

Si usas una solución de DNS de terceros para gestionar tu DNS, consulta su documentación para añadir el registro CNAME a la configuración de DNS. Si usas Google Cloud para gestionar tu DNS, sigue los pasos que se indican en esta sección.

Consola

Para crear un conjunto de registros, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Zonas DNS.

    Ir a las zonas de Cloud DNS

  2. Haz clic en el nombre de la zona DNS en la que quieras añadir el registro.

  3. En la página Detalles de la zona, haga clic en Añadir estándar.

  4. En la página Crear conjunto de registros, en el campo Nombre de DNS, introduce el subdominio de la zona DNS.

    Cuando introduzca el nombre del subdominio, asegúrese de que el nombre del subdominio, incluido el texto atenuado que se muestra en el campo Nombre DNS, coincida con el valor completo del campo dnsResourceRecord.name tal como se muestra en el resultado del comando gcloud certificate-manager dns-authorizations describe.

    Consulta los siguientes ejemplos:

    • Si el valor del campo dnsResourceRecord.name es _acme-challenge.myorg.example.com. y el texto atenuado del campo Nombre de DNS es .example.com., introduce _acme-challenge.myorg.

    • Si el valor del campo dnsResourceRecord.name es _acme-challenge.myorg.example.com. y el texto atenuado del campo Nombre de DNS es .myorg.example.com., introduce _acme-challenge.

    • Si el valor del campo dnsResourceRecord.name es _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. y el texto atenuado del campo Nombre DNS es .myorg.example.com., introduce _acme-challenge_ujmmovf2vn55tgye.

  5. En el campo Tipo de registro del recurso, selecciona CNAME.

  6. En el campo TTL, introduce un valor numérico positivo para el tiempo de vida del registro del recurso, que es el tiempo que puede almacenarse en la caché.

  7. En la lista Unidad TTL, selecciona la unidad de tiempo. Por ejemplo: 30 minutes.

  8. En el campo Nombre canónico, introduce el valor completo del campo dnsResourceRecord.data tal como se muestra en la salida del comando gcloud certificate-manager dns-authorizations describe.

  9. Para introducir información adicional, haz clic en Añadir elemento.

  10. Haz clic en Crear.

gcloud

Cuando creas una autorización de DNS, el comando de la CLI de gcloud devuelve el registro CNAME correspondiente. Para añadir el registro CNAME a la configuración de DNS en la zona DNS del dominio de destino, sigue estos pasos:

  1. Inicia la transacción del registro DNS:

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

    Sustituye DNS_ZONE_NAME por el nombre de la zona DNS de destino.

  2. Añade el registro CNAME a la 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"
    

    Haz los cambios siguientes:

    • CNAME_RECORD: el valor de datos completo del registro CNAME devuelto por el comando de la CLI de Google Cloud que creó la autorización de DNS correspondiente.
    • VALIDATION_SUBDOMAIN_NAME: el subdominio de prefijo de la zona DNS, como _acme-challenge. Puedes copiar el nombre del registro del comando gcloud certificate-manager dns-authorizations describe tal como se describe en el artículo Crear una autorización de DNS.
    • DOMAIN_NAME: el nombre del dominio de destino.El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com. También debes incluir el punto final después del nombre de dominio de destino.
    • DNS_ZONE_NAME: el nombre de la zona DNS de destino.

    Consulta el siguiente ejemplo:

    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. Ejecuta la transacción de registro DNS para guardar los cambios:

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

    Sustituye DNS_ZONE_NAME por el nombre de la zona DNS de destino.

Terraform

Para añadir el registro CNAME a tu configuración de DNS, puedes usar un 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]
}

Actualizar una autorización de DNS

Cuando actualizas una autorización de DNS, puedes hacer lo siguiente:

  • Especificar etiquetas nuevas
  • Especificar una nueva descripción

gcloud

Para actualizar una autorización de DNS, usa el comando certificate-manager dns-authorizations update:

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

Haz los cambios siguientes:

  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • LABELS: etiquetas de esta autorización de DNS. Esta marca es opcional.
  • DESCRIPTION: descripción de esta autorización de DNS. Esta marca es opcional.
  • LOCATION: la ubicación de destino. Google Cloud La ubicación predeterminada es global.

API

Para actualizar una autorización de DNS, haz una solicitud PATCH al método dnsAuthorizations.patch de la siguiente manera:

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del Google Cloud proyecto.
  • LOCATION: la ubicación de destino. Google Cloud La ubicación predeterminada es global.
  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • DESCRIPTION: campo opcional que especifica la descripción de esta autorización de DNS.
  • LABEL_KEY: una clave de etiqueta aplicada a esta autorización de DNS.
  • LABEL_VALUE: un valor de etiqueta aplicado a esta autorización de DNS.

Mostrar autorizaciones de DNS

Puedes ver todas las autorizaciones de DNS de tu proyecto y sus detalles.

gcloud

Para ver una lista de las autorizaciones de DNS, usa el 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"]

Haz los cambios siguientes:

  • FILTER: expresión que limita los resultados devueltos a valores específicos.

    Por ejemplo, puedes filtrar los resultados por los siguientes criterios:

    • Dominio: --filter='domain=myorg.example.com'
    • Etiquetas y hora de creación: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Para ver más ejemplos de filtros que puedes usar con Certificate Manager, consulta Ordenar y filtrar resultados de listas en la documentación de Cloud Key Management Service.

  • PAGE_SIZE: el número de resultados que se devolverán por página.

  • LIMIT: número máximo de resultados que se devolverán.

  • SORT_BY: lista delimitada por comas de campos name por los que se ordenan los resultados devueltos. El orden de clasificación predeterminado es ascendente. Para que sea descendente, añade una tilde (~) antes del campo.

  • LOCATION: la ubicación de destino. Google Cloud Para obtener una lista de las autorizaciones de DNS de todas las regiones, usa - como valor. El valor predeterminado es -. Esta marca es opcional.

API

Para enumerar todas las autorizaciones de DNS configuradas, haz una solicitud GET al método dnsAuthorizations.list de la siguiente manera:

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del Google Cloud proyecto.
  • LOCATION: la ubicación de destino. Google Cloud Para ver todas las autorizaciones de DNS de todas las ubicaciones, especifica un solo guion (-).
  • FILTER: expresión que limita los resultados devueltos a valores específicos.

    Por ejemplo, puedes filtrar los resultados por los siguientes criterios:

    • Dominio: --filter='domain=myorg.example.com'
    • Etiquetas y hora de creación: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: el número de resultados que se devolverán por página.

  • SORT_BY: lista delimitada por comas de campos name por los que se ordenan los resultados devueltos. El orden de clasificación predeterminado es ascendente. Para que sea descendente, añade una tilde (~) antes del campo.

Eliminar una autorización de DNS

Para eliminar una autorización de DNS asignada a certificados gestionados por Google, elimina los certificados antes de eliminar la autorización de DNS.

gcloud

Para eliminar una autorización de DNS, usa el certificate-manager dns-authorizations delete comando:

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

Haz los cambios siguientes:

  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
  • LOCATION: la ubicación de destino. Google Cloud La ubicación predeterminada es global.

API

Para eliminar una autorización de DNS, haz una solicitud DELETE al método dnsAuthorizations.delete de la siguiente manera:

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del Google Cloud proyecto.
  • LOCATION: la ubicación de destino. Google Cloud La ubicación predeterminada es global.
  • AUTHORIZATION_NAME: el nombre de la autorización de DNS.

Siguientes pasos