Questo documento spiega come aggiornare la policy DNS interna per utilizzare il DNS di zona con i nuovi progetti. Il DNS di zona migliora l'affidabilità delle applicazioni isolando le interruzioni all'interno delle zone, evitando interruzioni di servizi critici come la creazione di istanze e il ripristino automatico.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS .
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per visualizzare l'utilizzo del DNS interno a livello di organizzazione e aggiornare la policy predefinita, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Controllare la policy DNS globale predefinita: Organization Policy Administrator (
roles/orgpolicy.policyAdmin
) sulla cartella o sull'organizzazione -
Determinare se una cartella è pronta per la migrazione al DNS di zona: Browser (
roles/browser
) sulla cartella o sull'organizzazione
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per visualizzare l'utilizzo del DNS interno a livello di organizzazione e aggiornare la policy predefinita. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per visualizzare l'utilizzo del DNS interno a livello di organizzazione e aggiornare la policy predefinita sono necessarie le seguenti autorizzazioni:
-
Impostare un vincolo per la policy dell'organizzazione:
orgpolicy.*
-
Determinare se una cartella è pronta per la migrazione al DNS di zona:
-
resourcemanager.folders.get
-
resourcemanager.folders.list
-
resourcemanager.organizations.get
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
-
Controllare i nomi DNS globali e i metadati della VM:
compute.projects.get
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Panoramica della configurazione
Quando imposti una policy dell'organizzazione per eseguire l'override del tipo di DNS interno predefinito, per impostazione predefinita i nuovi progetti creati utilizzano il DNS di zona. La policy dell'organizzazione non influisce sui progetti esistenti in cui l'API Compute Engine è già abilitata. Per far sì che i progetti esistenti passino al DNS di zona, consulta la sezione Passaggio al DNS di zona per i progetti esistenti.
Ti consigliamo di applicare una policy DNS di zona a livello di organizzazione. Questo approccio garantisce che tutti i nuovi progetti creati all'interno della tua organizzazione utilizzino il DNS di zona, migliorandone l'affidabilità e la resilienza. Tuttavia, potresti dover esentare alcune cartelle da questa policy a livello di organizzazione. È necessario esentare le cartelle quando i nuovi progetti al loro interno dipendono da progetti esistenti incompatibili con il DNS di zona.
La procedura di applicazione di una policy DNS di zona a livello di organizzazione include i seguenti passaggi:
- Raccogli un elenco di progetti e cartelle: compila un elenco di tutti i progetti e delle relative cartelle associate all'interno della tua organizzazione.
- Identifica le cartelle da esentare: individua le cartelle contenenti i progetti incompatibili identificati nel passaggio 1. Queste cartelle dovranno essere temporaneamente esentate dalla policy DNS di zona.
- Imposta la policy dell'organizzazione: applica la policy DNS di zona a livello di organizzazione.
- Esenta cartelle specifiche: applica le esenzioni alle cartelle identificate nel passaggio 3. In questo modo, potranno continuare a utilizzare il DNS globale mentre ti occupi dei progetti incompatibili al loro interno.
Questo approccio garantisce che i nuovi progetti utilizzino il DNS di zona per una maggiore affidabilità, tenendo al contempo conto delle dipendenze esistenti nei progetti precedenti che potrebbero non essere pronti per la migrazione immediata.
Limitazioni
L'attivazione dei nomi DNS di zona nell'intera organizzazione applica le impostazioni DNS di zona alle istanze di altri servizi, ad esempio:
- Ambiente flessibile di App Engine, Google Kubernetes Engine e container in esecuzione su Compute Engine
- Cloud SQL, Cloud Run Functions e Batch
- Dataproc e Dataflow
Controlla se le tue applicazioni utilizzano uno di questi servizi e utilizza l'analisi delle query per identificare i problemi di compatibilità con il DNS di zona per le cartelle e i progetti associati a queste applicazioni.
Verifica se la tua organizzazione utilizza il DNS globale per impostazione predefinita
L'impostazione DNS predefinita per la tua organizzazione dipende da due fattori:
La data di creazione dell'organizzazione:
- Creazione successiva al 6 settembre 2018: la tua organizzazione utilizza il DNS di zona per impostazione predefinita. Non sono necessari ulteriori interventi da parte tua.
- Creazione precedente al 6 settembre 2018: la tua organizzazione utilizza il DNS globale per impostazione predefinita. Ti consigliamo di eseguire la migrazione al DNS di zona.
L'esistenza e l'applicazione di un vincolo della policy dell'organizzazione:
Anche se la tua organizzazione è stata creata prima del 6 settembre 2018, un amministratore potrebbe aver applicato una policy per l'utilizzo del DNS di zona per tutti i nuovi progetti creati all'interno dell'organizzazione. Per verificare la presenza di una policy di questo tipo, puoi utilizzare la console Trusted Cloud o Google Cloud CLI.
Console
Vai alla pagina IAM e amministrazione>Identità e organizzazione nella console.
Controlla la data di registrazione dell'organizzazione.
Se la tua organizzazione è stata creata prima del 6 settembre 2018, controlla se un vincolo della policy dell'organizzazione imposta il tipo DNS predefinito per tutti i nuovi progetti su DNS di zona.
- Vai alla pagina IAM e amministrazione>Policy dell'organizzazione nella console Trusted Cloud .
- Nel campo Filtro, inserisci
constraints/compute.setNewProjectDefaultToZonalDNSOnly
. - Se il vincolo è configurato, fai clic sul nome Configura l'impostazione del DNS interno per i nuovi progetti per utilizzare solo il DNS di zona.
- Nella pagina Dettagli policy, controlla lo Stato.
- Se lo stato è Applicato, il tipo di DNS interno predefinito è il DNS di zona per tutti i nuovi progetti creati nell'organizzazione.
- In caso contrario, il tipo di DNS predefinito per il progetto viene determinato dalla data di creazione dell'organizzazione.
- Se il vincolo non è stato configurato per l'organizzazione, il tipo di DNS predefinito per il progetto è determinato dalla data di creazione dell'organizzazione.
gcloud
Utilizza il comando
organizations describe
e il comandoresource-manager org-policies list
per determinare il tipo di DNS predefinito per un'organizzazione.Controlla il valore dei metadati
creationTime
dell'organizzazione.gcloud organizations describe ORGANIZATION_ID
Sostituisci ORGANIZATION_ID con l'ID o il nome di dominio dell'organizzazione.
Se la tua organizzazione è stata creata prima del 6 settembre 2018, determina se un vincolo della policy dell'organizzazione è configurato per impostare il tipo di DNS predefinito per tutti i nuovi progetti su DNS di zona.
gcloud resource-manager org-policies list --organization=ORGANIZATION_ID \ --filter="constraints/compute"
Nell'output, cerca
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.- Se il vincolo è presente e
Status
èEnforced
, tutti i nuovi progetti creati nell'organizzazione utilizzano il DNS di zona per impostazione predefinita. - Se il vincolo non è presente o non viene applicato, il tipo di DNS predefinito è determinato dalla data di creazione dell'organizzazione, come descritto nel primo passaggio.
- Se il vincolo è presente e
Determina quali progetti in una cartella o un'organizzazione utilizzano il DNS globale
Per determinare quali progetti utilizzano il DNS globale, ti consigliamo di utilizzare BigQuery per creare una tabella che elenchi i relativi progetti per la tua organizzazione con i metadati corrispondenti. Puoi quindi utilizzare questa tabella per eseguire una query
- Crea un set di dati BigQuery.
Esporta i metadati degli asset per la tua organizzazione in una tabella BigQuery.
- Assicurati che l'API Cloud Asset Inventory sia abilitata.
- Configura le autorizzazioni obbligatorie per utilizzare l'API Cloud Asset Inventory.
Utilizza il seguente comando gcloud CLI per esportare l'asset
compute.googleapis.com/Project
:gcloud asset export \ --content-type resource \ --organization 'ORGANIZATION_ID' \ --bigquery-table 'projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME' \ --asset-types='compute.googleapis.com/Project' \ --output-bigquery-force
Sostituisci quanto segue:
- ORGANIZATION_ID: il numero ID dell'organizzazione
- PROJECT_ID: l'ID progetto
- DATASET_ID: il nome del set di dati BigQuery
- TABLE_NAME: la tabella in cui esporti i metadati. Se la tabella non esiste, BigQuery la creerà.
Vai alla pagina BigQuery nella consoleTrusted Cloud .
Seleziona
Crea una nuova query.Nell'area di testo dell'editor di query, inserisci la seguente query GoogleSQL e poi fai clic su
Esegui.SELECT JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting, count(*) as project_count FROM PROJECT_ID.DATASET_ID.TABLE_NAME GROUP BY 1
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto
- DATASET_ID: il nome del set di dati BigQuery
- TABLE_NAME: la tabella contenente i metadati esportati del passaggio 2.
I progetti con il valore
ZONAL_ONLY
pervmDnsSetting
hanno il DNS di zona configurato. In caso contrario, i progetti utilizzano il DNS globale per impostazione predefinita.Facoltativo: per una visualizzazione dettagliata di
vmDnsSetting
per ogni progetto, inserisci la seguente query GoogleSQL e poi fai clic su Esegui.SELECT SUBSTR(name,35) as project_id, JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting FROM PROJECT_ID.DATASET_ID.TABLE_NAME
Determina l'idoneità alla migrazione di una cartella
Questo passaggio utilizza uno script
bash
e la tabella BigQuery creata nella sezione precedente per determinare l'idoneità alla migrazione della cartella.- La cartella è pronta se tutti i progetti non hanno eseguito query incompatibili con il DNS di zona negli ultimi 30 giorni.
- Se una cartella non è pronta per la migrazione, lo script risponde con gli ID dei progetti nella cartella che ne impediscono la preparazione per la migrazione. I progetti in questo elenco di risultati non sono ancora compatibili con il DNS di zona e richiedono un'azione aggiuntiva.
Completa i seguenti passaggi:
- Recupera l'ID cartella. Se non conosci l'ID cartella, segui questi passaggi:
- Nella console Trusted Cloud , vai alla pagina Risorse gestite.
- Applica il filtro
Name:FOLDER_NAME
per recuperare l'ID della cartella.
Esegui una query sulla tabella BigQuery con i dati
compute.Project assets
esportati.Per le istruzioni su come creare la tabella BigQuery, consulta Determina quali progetti in una cartella o un'organizzazione utilizzano il DNS globale.
Inserisci la seguente query GoogleSQL e poi fai clic su
Esegui:SELECT SUBSTR(name,35) AS project_id, FROM PROJECT_ID.DATASET_ID.TABLE_NAME WHERE CONTAINS_SUBSTR(ancestors, 'FOLDER_NUMBER')
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto
- DATASET_ID: il nome del set di dati BigQuery
- TABLE_NAME: la tabella contenente i metadati esportati
- FOLDER_NUMBER: il numero ID della cartella
Copia l'elenco degli ID progetto e salvalo in un file.
Esegui il seguente script
bash
: Lo script esegue l'iterazione degli ID progetto nel file salvato per determinare se una cartella è pronta per la migrazione.
#!/bin/bash inaccessible_projects=() unready_projects=() for project in $(cat ~/FILENAME | tr '\n' ' '); do echo -e "Checking project $project..." ERROR=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.error'` if ! [[ "$ERROR" -eq "null" ]]; then inaccessible_projects+=($project) continue fi QUERY_COUNT=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.timeSeriesData[0].pointData[0].values[0].int64Value'` if [[ "$QUERY_COUNT" -ne "null" ]] && [[ "$QUERY_COUNT" -ne "0" ]]; then unready_projects+=($project) fi done error_len=${#inaccessible_projects[@]} unready_len=${#unready_projects[@]} echo -e "$error_len projects were inaccessible" echo -e "$unready_len projects were not ready for migration" if [ $error_len -ne 0 ]; then echo "Unable to access the following projects:" for project in "${inaccessible_projects[@]}"; do echo "$project" done fi if [ $unready_len -ne 0 ]; then echo "The following projects are not ready for migration:" for project in "${unready_projects[@]}"; do echo "$project" done fi if (( $error_len + $unready_len > 0 )); then echo "This folder is NOT ready for gDNS -> zDNS migration." else echo "This folder is ready for gDNS -> zDNS migration." fi
Sostituisci FILENAME con il nome del file in cui hai salvato l'elenco di ID progetto.
Comunica i risultati dell'analisi di idoneità alla migrazione ai proprietari del progetto:
- Per le cartelle e i progetti di cui è possibile eseguire la migrazione in sicurezza, informa i proprietari dei progetti che possono iniziare a eseguire la migrazione dei progetti pronti.
- Per le cartelle che contengono progetti per i quali non è possibile eseguire la migrazione in sicurezza, invita i proprietari dei progetti a correggere le query incompatibili.
Esenta le cartelle non pronte per la migrazione al DNS di zona
Per esentare una cartella dalla policy dell'organizzazione, completa i seguenti passaggi per impostare l'opzione di applicazione della policy a livello di cartella su
Off
.- Accedi alla console Trusted Cloud come super amministratore di Google Workspace o Cloud Identity.
Nella console, vai alla pagina Policy dell'organizzazione.
Fai clic su Seleziona e poi seleziona le cartelle da esentare dalla policy dell'organizzazione.
La console Trusted Cloud mostra un elenco dei vincoli della policy dell'organizzazione per la cartella in una o più pagine.
Per trovare il vincolo della policy dell'organizzazione che applica il DNS di zona:
- Fai clic su Filtro.
- Seleziona Nome.
- Imposta il nome del filtro su Configura l'impostazione del DNS interno per i nuovi progetti per utilizzare solo il DNS di zona.
Fai clic sul nome del vincolo della policy dell'organizzazione per aprire la pagina Dettagli policy.
Fai clic su Modifica.
Nella pagina Modifica, seleziona Personalizza.
In Applicazione forzata, seleziona Off per disattivare l'applicazione del vincolo. Ciò significa che il tipo di DNS interno predefinito per tutti i progetti nella cartella è determinato dalla data di creazione dell'organizzazione.
Fai clic su Salva.
Per ulteriori informazioni sulla personalizzazione dei vincoli della policy dell'organizzazione, consulta la sezione Personalizzazione delle policy per i vincoli booleani nella documentazione di Resource Manager.
Applica il DNS di zona per impostazione predefinita ai nuovi progetti
Per impostare la policy dell'organizzazione per una cartella o un'organizzazione, segui questi passaggi:
Accedi alla console Trusted Cloud come super amministratore di Google Workspace o Cloud Identity.
Nella console, vai alla pagina Policy dell'organizzazione.
Seleziona la cartella o l'organizzazione per cui vuoi visualizzare le policy dell'organizzazione. La console Trusted Cloud mostra un elenco dei vincoli delle policy dell'organizzazione disponibili. L'elenco potrebbe essere suddiviso su più pagine.
Per trovare la policy per applicare il DNS di zona, fai clic su Filtra e seleziona Nome, quindi imposta il nome del filtro su Configura l'impostazione del DNS interno per i nuovi progetti per utilizzare solo il DNS di zona.
Fai clic sul nome della policy per visualizzarne i dettagli.
La pagina dei dettagli della policy fornisce informazioni sul vincolo e su come viene applicato.
Per impostazione predefinita, l'applicazione non è definita per una cartella o un'organizzazione. Tuttavia, se una cartella principale ha un'applicazione definita, questa viene ereditata dalla cartella principale più vicina che ha un'applicazione definita. Per saperne di più, consulta Informazioni sulla valutazione della gerarchia.
Per personalizzare la policy dell'organizzazione, fai clic su Modifica.
Nella pagina di modifica, seleziona Personalizza.
In Applicazione forzata, seleziona On.
In questo modo, il tipo di DNS interno predefinito per tutti i nuovi progetti dell'organizzazione viene impostato sul DNS di zona.
Fai clic su Salva.
Per convalidare la modifica della policy dell'organizzazione, puoi creare un nuovo progetto nella cartella o nell'organizzazione, quindi creare e avviare un'istanza VM e verificare se la VM è abilitata per il DNS di zona.
Se il DNS globale è necessario per risolvere una query sul nome DNS integrata nel tuo workload, puoi eseguire il rollback di questa modifica a livello di organizzazione o cartella disattivando l'applicazione.
Ripristina l'utilizzo del DNS globale per un'organizzazione o una cartella
Per ripristinare l'utilizzo del DNS globale per un'organizzazione o una cartella, arresta l'applicazione della policy dell'organizzazione per il DNS di zona. Completa i seguenti passaggi.
Disattiva la policy dell'organizzazione
constraints/compute.setNewProjectDefaultToZonalDNSOnly
a livello di organizzazione o cartella. Per istruzioni su come modificare questa policy, consulta Applica il DNS di zona per impostazione predefinita ai nuovi progetti.Imposta l'applicazione dell'impostazione Configura l'impostazione del DNS interno per i nuovi progetti per utilizzare solo il DNS di zona su Off.
Se vuoi ripristinare l'utilizzo del DNS globale per l'intera organizzazione, verifica che nessuna delle cartelle dell'organizzazione applichi la policy dell'organizzazione
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.Per verificare che il DNS globale sia configurato per i tuoi progetti e istanze, consulta Determina quali progetti in una cartella o un'organizzazione utilizzano il DNS globale.
Passaggi successivi
- Per i progetti esistenti che utilizzano il DNS globale è necessaria una migrazione separata. Per saperne di più, consulta Aggiorna i progetti per utilizzare il DNS di zona.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-18 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-18 UTC."],[[["This guide outlines the process of updating your internal DNS policy to utilize zonal DNS for new projects, enhancing application reliability by isolating outages within zones."],["To implement zonal DNS, you will need to gather a list of your current projects and folders, identify folders that need to be exempt, set the organizational policy, and exempt the specified folders, so that you can migrate them later."],["You can determine if your organization is currently using zonal DNS by checking its creation date or by examining if there is an existing organization policy constraint that enforces it, either via the Console or the gcloud CLI."],["Utilizing BigQuery and a `bash` script, you can determine which projects are using global DNS, assess if folders are ready for migration to zonal DNS, and identify any projects that might be preventing a folder's migration."],["You can enforce or disable zonal DNS policy at the organization or folder level through the Google Cloud Console, and if necessary, revert back to using global DNS."]]],[]] -