Gestione delle autorizzazioni DNS

Le autorizzazioni DNS ti consentono di dimostrare la proprietà dei domini per i certificati gestiti da Google. Quando crei un certificato gestito da Google, puoi specificare una o più autorizzazioni DNS da utilizzare per il provisioning e il rinnovo.

Questa pagina descrive come creare e gestire le autorizzazioni DNS da utilizzare con i certificati gestiti da Google.

Per ulteriori informazioni, vedi Autorizzazioni del dominio.

Crea un'autorizzazione DNS

Un'autorizzazione DNS copre solo un singolo nome di dominio. Devi creare un'autorizzazione DNS separata per ogni nome di dominio che vuoi utilizzare con il certificato di destinazione.

Se stai creando un'autorizzazione DNS per un certificato con caratteri jolly, ad esempio *.myorg.example.com, configura l'autorizzazione DNS per il dominio principale, ad esempio myorg.example.com.

Per gestire in modo indipendente i certificati in più progetti, puoi utilizzare l'autorizzazione DNS PER_PROJECT_RECORD. Certificate Manager può gestire l'emissione e la gestione dei certificati per ogni progetto in modo indipendente all'interno di Google Cloud. Le autorizzazioni DNS e i certificati che utilizzi all'interno di un progetto sono autonomi e non interagiscono con quelli di altri progetti.

Console

Puoi creare un'autorizzazione DNS o allegarne una esistente quando crei un certificato. Per saperne di più, vedi Crea un certificato gestito da Google che fa riferimento all'autorizzazione DNS.

gcloud

A seconda dei tuoi requisiti, puoi creare uno di questi due tipi di autorizzazioni DNS: FIXED_RECORD o PER_PROJECT_RECORD. Per ulteriori informazioni, vedi Autorizzazione DNS.

Autorizzazione DNS FIXED_RECORD

Per creare un'autorizzazione DNS FIXED_RECORD, utilizza il seguente comando gcloud certificate-manager dns-authorizations create:

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

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio di destinazione per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.
  • LOCATION: la posizione Google Cloud di destinazione in cui crei l'autorizzazione DNS.

Dopo aver creato l'autorizzazione DNS FIXED_RECORD, verificane la validità con il comando gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

L'output è simile al seguente. Nell'output, trova la riga dnsResourceRecord e recupera il record CNAME (data,name e type) da aggiungere alla configurazione 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'

Autorizzazione DNS PER_PROJECT_RECORD

Per creare un'autorizzazione DNS PER_PROJECT_RECORD, utilizza il seguente comando gcloud certificate-manager dns-authorizations create:

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

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio di destinazione per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.
  • LOCATION: la posizione Google Cloud di destinazione in cui crei l'autorizzazione DNS.

Dopo aver creato l'autorizzazione DNS PER_PROJECT_RECORD, verificala con il comando gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

L'output è simile al seguente. Nell'output, trova la riga dnsResourceRecord e recupera il record CNAME (data,name e type) da aggiungere alla configurazione 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

Per creare un'autorizzazione DNS, puoi utilizzare una risorsa 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
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

API

Per creare un'autorizzazione DNS, invia una richiesta POST al metodo dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • LOCATION: la posizione Google Cloud di destinazione in cui crei l'autorizzazione DNS. Per la località globale, utilizza global.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio di destinazione per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.

Aggiungere il record CNAME alla configurazione DNS

Se utilizzi una soluzione DNS di terze parti per gestire il DNS, consulta la relativa documentazione per aggiungere il record CNAME alla configurazione DNS. Se utilizzi Google Cloud per gestire il DNS, completa i passaggi descritti in questa sezione.

Console

Per creare un insieme di record:

  1. Nella console Google Cloud , vai alla pagina Zone DNS.

    Vai alle zone Cloud DNS

  2. Fai clic sul nome della zona DNS in cui vuoi aggiungere il record.

  3. Nella pagina Dettagli zona, fai clic su Aggiungi standard.

  4. Nella pagina Crea set di record, inserisci il sottodominio della zona DNS nel campo Nome DNS.

    Quando inserisci il nome del sottodominio, assicurati che il nome del sottodominio, incluso il testo disattivato visualizzato nel campo Nome DNS, corrisponda al valore completo del campo dnsResourceRecord.name visualizzato nell'output del comando gcloud certificate-manager dns-authorizations describe.

    Vedi i seguenti esempi:

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge.myorg.example.com. e il testo in grigio nel campo Nome DNS è .example.com., inserisci _acme-challenge.myorg.

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge.myorg.example.com. e il testo in grigio nel campo Nome DNS è .myorg.example.com., inserisci _acme-challenge.

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. e il testo disattivato nel campo Nome DNS è .myorg.example.com., inserisci _acme-challenge_ujmmovf2vn55tgye.

  5. Nel campo Tipo di record risorsa, seleziona CNAME.

  6. Nel campo TTL, inserisci un valore numerico positivo per la durata del record della risorsa, ovvero per quanto tempo può essere memorizzato nella cache.

  7. Nell'elenco Unità TTL, seleziona l'unità di tempo, ad esempio 30 minutes.

  8. Nel campo Nome canonico, inserisci il valore completo del campo dnsResourceRecord.data visualizzato nell'output del comando gcloud certificate-manager dns-authorizations describe.

  9. Per inserire ulteriori informazioni, fai clic su Aggiungi elemento.

  10. Fai clic su Crea.

gcloud

Quando crei un'autorizzazione DNS, il comando gcloud CLI restituisce il record CNAME corrispondente. Per aggiungere il record CNAME alla configurazione DNS nella zona DNS del dominio di destinazione, segui questi passaggi:

  1. Avvia la transazione del record DNS:

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

    Sostituisci DNS_ZONE_NAME con il nome della zona DNS di destinazione.

  2. Aggiungi il record CNAME alla zona DNS di destinazione:

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

    Sostituisci quanto segue:

    • CNAME_RECORD: il valore completo dei dati del record CNAME restituito dal comando Google Cloud CLI che ha creato l'autorizzazione DNS corrispondente.
    • VALIDATION_SUBDOMAIN_NAME: il sottodominio del prefisso della zona DNS, ad esempio _acme-challenge. Puoi copiare il nome dal log dei comandi gcloud certificate-manager dns-authorizations describe, come descritto in Creare un'autorizzazione DNS.
    • DOMAIN_NAME: il nome del dominio di destinazione.Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com. Devi includere anche il punto finale dopo il nome di dominio di destinazione.
    • DNS_ZONE_NAME: il nome della zona DNS di destinazione.

    Vedi il seguente esempio:

    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. Esegui la transazione del record DNS per salvare le modifiche:

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

    Sostituisci DNS_ZONE_NAME con il nome della zona DNS di destinazione.

Terraform

Per aggiungere il record CNAME alla configurazione DNS, puoi utilizzare una risorsa 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]
}

Aggiornare un'autorizzazione DNS

Quando aggiorni un'autorizzazione DNS, puoi:

  • Specifica le nuove etichette
  • Specifica una nuova descrizione

gcloud

Per aggiornare un'autorizzazione DNS, utilizza il comando certificate-manager dns-authorizations update:

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

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • LABELS: etichette per questa autorizzazione DNS. Questo flag è facoltativo.
  • DESCRIPTION: descrizione di questa autorizzazione DNS. Questo flag è facoltativo.
  • LOCATION: la posizione Google Cloud di destinazione. La posizione predefinita è global.

API

Aggiorna un'autorizzazione DNS inviando una richiesta PATCH al metodo dnsAuthorizations.patch come segue:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • LOCATION: la posizione Google Cloud di destinazione. La posizione predefinita è global.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DESCRIPTION: un campo facoltativo che specifica la descrizione di questa autorizzazione DNS.
  • LABEL_KEY: una chiave di etichetta applicata a questa autorizzazione DNS.
  • LABEL_VALUE: un valore dell'etichetta applicato a questa autorizzazione DNS.

Elenco delle autorizzazioni DNS

Puoi visualizzare tutte le autorizzazioni DNS del tuo progetto e i relativi dettagli.

gcloud

Per elencare le autorizzazioni DNS, utilizza il comando certificate-manager dns-authorizations list:

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

Sostituisci quanto segue:

  • FILTER: un'espressione che limita i risultati restituiti a valori specifici.

    Ad esempio, puoi filtrare i risultati in base ai seguenti criteri:

    • Dominio: --filter='domain=myorg.example.com'
    • Etichette e data/ora creazione: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Per altri esempi di filtri che puoi utilizzare con Certificate Manager, consulta Ordinamento e filtraggio dei risultati dell'elenco nella documentazione di Cloud Key Management Service.

  • PAGE_SIZE: il numero di risultati da restituire per pagina.

  • LIMIT: il numero massimo di risultati da restituire.

  • SORT_BY: un elenco delimitato da virgole dei campi name in base ai quali vengono ordinati i risultati restituiti. L'ordinamento predefinito è crescente; per l'ordinamento decrescente, anteponi al campo una tilde (~).

  • LOCATION: la posizione Google Cloud di destinazione. Per elencare le autorizzazioni DNS di tutte le regioni, utilizza - come valore. Il valore predefinito è -. Questo flag è facoltativo.

API

Elenca tutte le autorizzazioni DNS configurate inviando una richiesta GET al metodo dnsAuthorizations.list come segue:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • LOCATION: la posizione Google Cloud di destinazione. Per visualizzare tutte le autorizzazioni DNS in tutte le località, specifica un solo trattino (-).
  • FILTER: un'espressione che limita i risultati restituiti a valori specifici.

    Ad esempio, puoi filtrare i risultati in base ai seguenti criteri:

    • Dominio: --filter='domain=myorg.example.com'
    • Etichette e data/ora creazione: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: il numero di risultati da restituire per pagina.

  • SORT_BY: un elenco delimitato da virgole dei campi name in base ai quali vengono ordinati i risultati restituiti. L'ordinamento predefinito è crescente; per l'ordinamento decrescente, anteponi al campo una tilde (~).

Eliminare un'autorizzazione DNS

Per eliminare un'autorizzazione DNS assegnata a certificati gestiti da Google, elimina i certificati prima di eliminare l'autorizzazione DNS.

gcloud

Per eliminare un'autorizzazione DNS, utilizza il comando certificate-manager dns-authorizations delete:

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

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • LOCATION: la posizione Google Cloud di destinazione. La posizione predefinita è global.

API

Elimina un'autorizzazione DNS inviando una richiesta DELETE al metodo dnsAuthorizations.delete come segue:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • LOCATION: la posizione Google Cloud di destinazione. La posizione predefinita è global.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.

Passaggi successivi