Este documento explica cómo actualizar su política DNS interna para usar DNS zonal para nuevos proyectos. El DNS zonal mejora la confiabilidad de las aplicaciones al aislar las interrupciones dentro de las zonas, evitando interrupciones en servicios críticos como la creación de instancias y la reparación automática.
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Verifique la política DNS global predeterminada: Administrador de políticas de organización (
roles/orgpolicy.policyAdmin
) en la carpeta u organización - Determinar si una carpeta está lista para migrar a DNS zonal: Navegador (
roles/browser
) en la carpeta u organización - Establezca una restricción de política de organización:
orgpolicy.*
- Determine si una carpeta está lista para migrar al DNS zonal:
-
resourcemanager.folders.get
-
resourcemanager.folders.list
-
resourcemanager.organizations.get
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
- Verifique los nombres de DNS globales y los metadatos de VM:
compute.projects.get
- Reúna una lista de proyectos y carpetas : recopile una lista de todos los proyectos y sus carpetas asociadas dentro de su organización.
- Identifique las carpetas a eximir : Identifique las carpetas que contienen los proyectos incompatibles identificados en el Paso 1. Estas carpetas deberán estar temporalmente exentas de la política DNS zonal.
- Establecer la política organizacional : aplique la política DNS zonal a nivel organizacional.
- Carpetas específicas exentas : aplique exenciones a las carpetas identificadas en el Paso 3. Esto les permite continuar usando DNS global mientras aborda los proyectos incompatibles dentro de ellas.
- Entorno flexible de App Engine , Google Kubernetes Engine y contenedores que se ejecutan en Compute Engine
- Cloud SQL , funciones de Cloud Run y Batch
- Proceso de datos y flujo de datos
La fecha de creación de la organización :
- Creado después del 6 de septiembre de 2018: su organización utiliza DNS zonal de forma predeterminada. No se necesita ninguna otra acción.
- Creado antes del 6 de septiembre de 2018: su organización utiliza DNS global de forma predeterminada. Debería considerar migrar a DNS zonal.
La existencia y aplicación de una restricción de política de la organización :
Incluso si su organización se creó antes del 6 de septiembre de 2018, es posible que un administrador haya aplicado una política para usar DNS zonal para todos los proyectos nuevos creados dentro de la organización. Para comprobar si existe dicha política, puede utilizar la consola de Google Cloud o la CLI de Google Cloud.
Vaya a la página IAM y administración > Identidad y organización en la consola.
Consulta la fecha de alta de la organización.
Si su organización se creó antes del 6 de septiembre de 2018, verifique si una restricción de política de la organización establece el tipo de DNS predeterminado para todos los proyectos recién creados en DNS zonal.
- Vaya a la página IAM y administración > Políticas de la organización en la consola de Google Cloud.
- En el campo Filtro , ingrese
constraints/compute.setNewProjectDefaultToZonalDNSOnly
. - Si la restricción está configurada, haga clic en el nombre Establece la configuración DNS interna para nuevos proyectos en Solo DNS zonal .
- En la página de detalles de la política , verifique el Estado .
- Si el estado es Aplicado , entonces el tipo de DNS interno predeterminado es DNS zonal para todos los proyectos nuevos creados en la organización.
- De lo contrario, el tipo de DNS predeterminado para el proyecto aún está determinado por el momento de creación de la organización.
- Si la restricción no se configuró para la organización, el tipo de DNS predeterminado para el proyecto lo determina la fecha de creación de la organización.
Verifique el valor de los metadatos
creationTime
de la organización.gcloud organizations describe ORGANIZATION_ID
Reemplace ORGANIZATION_ID con el número de identificación de la organización o el nombre de dominio de la organización.
Si su organización se creó antes del 6 de septiembre de 2018, determine si está configurada una restricción de política de la organización para establecer el tipo de DNS predeterminado para todos los proyectos recién creados en DNS zonal.
gcloud resource-manager org-policies list --organization=ORGANIZATION_ID \ --filter="constraints/compute"
En el resultado, busque
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.- Si la restricción está presente y
Status
esEnforced
, todos los proyectos nuevos creados en la organización utilizan DNS zonal de forma predeterminada. - Si la restricción no está presente o no se aplica, el tipo de DNS predeterminado lo determina la fecha de creación de la organización, como se describe en el primer paso.
- Si la restricción está presente y
- Crea un conjunto de datos de BigQuery .
Exporta los metadatos de recursos de tu organización a una tabla de BigQuery .
- Asegúrese de que la API de Cloud Asset Inventory esté habilitada.
- Configure los permisos necesarios para utilizar la API de Cloud Asset Inventory.
Utilice el siguiente comando CLI de gcloud para exportar el recurso
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
Reemplace lo siguiente:
- ORGANIZATION_ID : el número de identificación de la organización
- PROJECT_ID : el ID del proyecto
- DATASET_ID : el nombre del conjunto de datos de BigQuery
- TABLE_NAME : la tabla a la que estás exportando tus metadatos. Si la tabla no existe, BigQuery la crea.
Vaya a la página de BigQuery en la consola de Google Cloud.
Seleccione
Redactar una nueva consulta .En el área de texto del editor de consultas, ingrese la siguiente consulta de GoogleSQL y luego haga clic en
Ejecutar .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
Reemplace lo siguiente:
- PROJECT_ID : el ID del proyecto
- DATASET_ID : el nombre del conjunto de datos de BigQuery
- TABLE_NAME : la tabla que contiene los metadatos exportados, del Paso 2.
Los proyectos con el valor
ZONAL_ONLY
paravmDnsSetting
tienen DNS zonal configurado. De lo contrario, los proyectos utilizan DNS global de forma predeterminada.Opcional: para obtener una vista detallada de
vmDnsSetting
para cada proyecto, ingrese la siguiente consulta de GoogleSQL y luego haga clic en Ejecutar .SELECT SUBSTR(name,35) as project_id, JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting FROM PROJECT_ID.DATASET_ID.TABLE_NAME
- La carpeta está lista si todos los proyectos no han realizado ninguna consulta que sea incompatible con el DNS zonal en los últimos 30 días.
- Si una carpeta no está lista para la migración, el script responde con los ID del proyecto en la carpeta que impiden que la carpeta esté lista para la migración. Los proyectos en esta lista de resultados aún no son compatibles con el DNS zonal y requieren acciones adicionales.
- Obtenga el ID de la carpeta. Si no conoce el ID de la carpeta, haga lo siguiente:
- En la consola de Google Cloud, ve a la página Recursos administrados .
- Aplique el filtro
Name: FOLDER_NAME
para obtener el ID de la carpeta.
Consulta la tabla de BigQuery con los datos
compute.Project assets
exportados.Para obtener instrucciones sobre cómo crear la tabla de BigQuery, consulte Determinar qué proyectos en una carpeta u organización usan DNS global .
Ingrese la siguiente consulta de GoogleSQL y luego haga clic en
Ejecutar :SELECT SUBSTR(name,35) AS project_id, FROM PROJECT_ID.DATASET_ID.TABLE_NAME WHERE CONTAINS_SUBSTR(ancestors, 'FOLDER_NUMBER')
Reemplace lo siguiente:
- PROJECT_ID : el ID del proyecto
- DATASET_ID : el nombre del conjunto de datos de BigQuery
- TABLE_NAME : la tabla que contiene los metadatos exportados
- FOLDER_NUMBER : el número de ID de la carpeta
Copie la lista de ID del proyecto y guárdela en un archivo.
Ejecute el siguiente script
bash
. El script recorre en iteración los ID del proyecto en el archivo guardado para determinar si una carpeta está lista para la migración.- Para las carpetas y proyectos que se pueden migrar de forma segura, notifique a los propietarios del proyecto que pueden comenzar a migrar proyectos listos .
- Para las carpetas que contienen proyectos cuya migración no es segura, indique a los propietarios del proyecto que solucionen las consultas incompatibles .
- Inicie sesión en la consola de Google Cloud como superadministrador de Google Workspace o Cloud Identity.
En la consola, vaya a la página Políticas de la organización .
Haga clic en Seleccionar y luego seleccione las carpetas que desea eximir de la política de la organización.
La consola de Google Cloud muestra una lista de restricciones de políticas de la organización para esa carpeta en una o más páginas.
Para encontrar la restricción de política de la organización que aplica el DNS zonal:
- Haga clic en Filtrar .
- Seleccione Nombre .
- Establezca el nombre del filtro en Establece la configuración DNS interna para nuevos proyectos en Solo DNS zonal .
Haga clic en el nombre de la restricción de la política de la organización para abrir la página de detalles de la política .
Haga clic en Editar .
En la página Editar , seleccione Personalizar .
En Cumplimiento , seleccione Desactivado para deshabilitar el cumplimiento de la restricción. Esto significa que el tipo de DNS interno predeterminado para todos los proyectos en la carpeta está determinado por la fecha de creación de la organización.
Haga clic en Guardar .
Inicie sesión en la consola de Google Cloud como superadministrador de Google Workspace o Cloud Identity.
En la consola, vaya a la página Políticas de la organización .
Seleccione la carpeta u organización para la que desea ver las políticas de la organización. La consola de Google Cloud muestra una lista de restricciones de políticas de la organización que están disponibles. La lista puede abarcar varias páginas.
Para encontrar la política para aplicar DNS zonal, haga clic en Filtrar y seleccione Nombre , luego establezca el nombre del filtro en Establece la configuración DNS interna para nuevos proyectos en Solo DNS zonal .
Haga clic en el nombre de la política para ver sus detalles .
La página de detalles de la política proporciona información sobre la restricción y cómo se aplica.
De forma predeterminada, la aplicación no está definida para una carpeta u organización. Sin embargo, si una carpeta principal tiene una aplicación definida, la aplicación se hereda de la carpeta principal más cercana que tiene una aplicación definida. Para obtener más información, consulte Comprensión de la evaluación de jerarquía .
Para personalizar la política de la organización, haga clic en Editar .
En la página de edición, seleccione Personalizar .
En Cumplimiento , seleccione Activado .
Esto establece el tipo de DNS interno predeterminado para todos los proyectos nuevos de la organización en DNS zonal.
Haga clic en Guardar .
Deshabilite las
constraints/compute.setNewProjectDefaultToZonalDNSOnly
en el nivel de organización o carpeta. Para obtener instrucciones sobre cómo modificar esta política, consulte Aplicar DNS zonal de forma predeterminada para nuevos proyectos .Establezca la aplicación de Establece la configuración DNS interna para nuevos proyectos en Solo DNS zonal en Desactivado .
Si desea volver a utilizar DNS global para toda la organización, verifique que ninguna de las carpetas de la organización aplique las
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.Para verificar que el DNS global esté configurado para sus proyectos e instancias, consulte Determinar qué proyectos en una carpeta u organización usan DNS global .
- Cualquier proyecto existente que utilice DNS global se debe migrar por separado. Para obtener más información, consulte Actualice sus proyectos para usar DNS zonal .
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Roles requeridos
Para obtener los permisos que necesita para ver el uso de DNS interno de toda la organización y actualizar la política predeterminada, solicite a su administrador que le otorgue las siguientes funciones de IAM:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para ver el uso de DNS interno de toda la organización y actualizar la política predeterminada. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para ver el uso de DNS interno de toda la organización y actualizar la política predeterminada:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Descripción general de la configuración
Cuando configura una política de organización para anular el tipo de DNS interno predeterminado, los proyectos recién creados utilizan DNS zonal de forma predeterminada. La política de la organización no afecta los proyectos existentes donde la API de Compute Engine ya está habilitada. Para cambiar proyectos existentes para que utilicen DNS zonal, consulte cambiar proyectos existentes a DNS zonal .
Recomendamos aplicar una política de DNS zonal a nivel de organización. Este enfoque garantiza que todos los proyectos nuevos creados dentro de su organización utilizarán DNS zonal, lo que mejora su confiabilidad y resiliencia. Sin embargo, es posible que deba eximir algunas carpetas de esta política para toda la organización. Es necesario eximir las carpetas cuando los nuevos proyectos dentro de esas carpetas dependen de proyectos existentes que son incompatibles con el DNS zonal.
El proceso de hacer cumplir una política de DNS zonal a nivel de organización incluye los siguientes pasos:
Este enfoque garantiza que los nuevos proyectos utilicen DNS zonal para mejorar la confiabilidad y, al mismo tiempo, se adaptan a las dependencias existentes en proyectos más antiguos que podrían no estar listos para una migración inmediata.
Limitaciones
Al habilitar nombres de DNS zonales en toda su organización, se aplican configuraciones de DNS zonales a instancias de otros servicios, como los siguientes:
Revise si sus aplicaciones utilizan alguno de estos servicios y utilice el análisis de consultas para identificar problemas de compatibilidad con DNS zonal para las carpetas y proyectos asociados con esas aplicaciones.
Compruebe si su organización utiliza DNS global de forma predeterminada
La configuración de DNS predeterminada para su organización depende de dos factores:
Consola
nube de gcloud
Utilice el comando
organizations describe
y el comandoresource-manager org-policies list
para determinar el tipo de DNS predeterminado para una organización.Determinar qué proyectos en una carpeta u organización usan DNS global
Para determinar qué proyectos utilizan DNS global, recomendamos usar BigQuery para crear una tabla que enumere los proyectos relativos a su organización y sus metadatos. Luego puede usar esta tabla para ejecutar una consulta.
Determinar la preparación para la migración de una carpeta
Este paso utiliza un script
bash
y la tabla de BigQuery creada en la sección anterior para determinar la preparación para la migración de la carpeta.Complete los siguientes pasos:
#!/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
Reemplace FILENAME con el nombre del archivo en el que guardó la lista de ID del proyecto.
Transmitir los resultados del análisis de preparación para la migración a los propietarios del proyecto:
Las carpetas exentas no están listas para migrar al DNS zonal
Para eximir una carpeta de la política de la organización, complete los siguientes pasos para configurar la opción de aplicación de la política a nivel de carpeta en
Off
.Para obtener más información sobre cómo personalizar las restricciones de políticas de la organización, consulte Personalización de políticas para restricciones booleanas en la documentación de Resource Manager.
Aplicar DNS zonal de forma predeterminada para nuevos proyectos
Utilice los siguientes pasos para configurar la política de la organización para una carpeta u organización.
Para validar el cambio de política de la organización, puede crear un nuevo proyecto en la carpeta u organización, luego crear e iniciar una instancia de VM y verificar si su VM está habilitada para DNS zonal .
Si se necesita un DNS global para resolver una consulta de nombre DNS integrada en su carga de trabajo, puede revertir este cambio a nivel de organización o carpeta deshabilitando la aplicación.
Volver a usar DNS global para una organización o carpeta
Para revertir una organización o carpeta al uso de DNS global, deje de aplicar la política organizacional para DNS zonal. Complete los siguientes pasos.
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-