¿Cómo resuelvo zonas hospedadas privadas (PHZ) entre cuentas a través de Route 53 Global Resolver?
Las organizaciones que usan arquitecturas multi-cuenta a menudo necesitan que las zonas hospedadas privadas (PHZ) propiedad de distintas cuentas de AWS sean resolubles a través de un Route 53 Global Resolver centralizado. Desde el 24 de junio de 2026, esto es posible mediante el uso compartido de DNS Views a través de AWS Resource Access Manager (RAM). La cuenta propietaria comparte su DNS View con una cuenta consumidora, y la consumidora asocia sus propias PHZ a la vista compartida.
Descripción general
El uso compartido de DNS Views de Route 53 Global Resolver permite la resolución de PHZ entre cuentas sin transferir la propiedad de la zona hospedada ni de la DNS View. La cuenta propietaria conserva el control total del Global Resolver y de la DNS View, mientras que la cuenta consumidora puede hacer que sus registros privados sean resolubles a través del resolutor de la propietaria, desde cualquier ubicación de cliente autorizada.
Antes de esta funcionalidad, intentar una asociación de PHZ entre cuentas devolvía GR-ERR03603 (ResourceNotFoundException) o GR-ERR03102 (ValidationException). El uso compartido de DNS Views mediante RAM elimina estos errores.
Cómo funciona el uso compartido de DNS Views
Intervienen dos cuentas:
- Cuenta propietaria (Owner): Es dueña del Global Resolver y de la DNS View. Comparte la DNS View mediante RAM y elige qué permisos otorgar.
- Cuenta consumidora (Consumer): Es dueña de la zona hospedada privada. Acepta el recurso compartido de RAM y asocia su PHZ a la DNS View compartida.
Una vez asociadas, las consultas a los dominios privados de la consumidora a través del Global Resolver de la propietaria se resuelven correctamente, desde cualquier cliente autorizado, en cualquier Región donde se ejecute el resolutor.
La propietaria puede ver y eliminar en cualquier momento las asociaciones creadas por la consumidora. La consumidora solo puede gestionar las asociaciones que ella misma creó.
Niveles de permisos de RAM
Al compartir una DNS View, la propietaria selecciona un permiso gestionado que define qué puede hacer la consumidora:
-
AWSRAMDefaultPermissionDNSView (predeterminado): La consumidora puede ver la DNS View compartida y asociar/desasociar sus propias PHZ. Acciones:
AssociateHostedZone,GetDNSView. -
AWSRAMPermissionDNSViewLifecycleManagement: La consumidora puede ver, actualizar, habilitar y deshabilitar la DNS View, pero no puede asociar PHZ.
-
AWSRAMPermissionDNSViewFullAccess: La consumidora puede asociar PHZ y gestionar el ciclo de vida de la DNS View.
Consideraciones importantes
-
Las asociaciones de PHZ creadas por la consumidora son propiedad de la cuenta de la consumidora, pero se contabilizan en la cuota de la propietaria de asociaciones por DNS View.
-
La PHZ de la consumidora NO necesita una asociación de VPC cuando se usa con Global Resolver.
-
Si la propietaria deja de compartir (deshace el uso compartido de) la DNS View, las asociaciones de PHZ existentes NO se eliminan automáticamente: siguen afectando la resolución hasta que se eliminen explícitamente.
-
La propietaria no puede eliminar una DNS View mientras esté compartida. Primero deja de compartirla, luego elimínala.
-
El Global Resolver de la propietaria puede ejecutarse en Regiones opt-in que la consumidora no haya habilitado. El nombre de dominio de la PHZ se replica a todas las Regiones donde se ejecuta el resolutor.
-
No hay costo adicional por el uso compartido de DNS Views.
Nota sobre las Regiones: Las operaciones de Route 53 Global Resolver (crear resolutor, crear DNS view, asociar zona hospedada) usan --region us-east-2 (Ohio). Sin embargo, el recurso compartido de RAM para una DNS View debe crearse en --region us-east-1 (Norte de Virginia), porque RAM trata la DNS View como un recurso global. Esta distinción es fácil de pasar por alto: usar Ohio para el recurso compartido de RAM devuelve MalformedArnException.
Primeros pasos
Requisitos previos
-
Un Route 53 Global Resolver (OPERATIONAL) en la cuenta propietaria
-
Una DNS View configurada en la cuenta propietaria
-
Una zona hospedada privada en la cuenta consumidora
-
AWS RAM habilitado en ambas cuentas (a través de Organizations o de forma independiente)
-
Permisos de IAM:
AmazonRoute53GlobalResolverFullAccessen la cuenta propietaria,ram:AcceptResourceShareInvitation+route53globalresolver:AssociateHostedZoneen la cuenta consumidora
Paso 1: Cuenta propietaria — Compartir la DNS View mediante AWS RAM
Crea un recurso compartido dirigido a la cuenta consumidora. Nota: usa --region us-east-1 (Virginia), no Ohio.
aws ram create-resource-share \ --region us-east-1 \ --name shared-dns-view-team-b \ --resource-arns "arn:aws:route53globalresolver::OWNER_ACCOUNT_ID:dns-view/dnsv-0a1b2c3d4e5f67890" \ --principals "CONSUMER_ACCOUNT_ID"
Esto usa el permiso predeterminado (AWSRAMDefaultPermissionDNSView), que permite a la consumidora asociar PHZ. Para especificar un nivel de permiso diferente, agrega --permission-arns con el ARN del permiso gestionado deseado.
Paso 2: Cuenta consumidora — Aceptar el recurso compartido de RAM
Si ambas cuentas están en la misma AWS Organization con el uso compartido de RAM habilitado, la aceptación es automática: omite este paso.
Para cuentas fuera de la Organización, la consumidora debe aceptar la invitación:
aws ram accept-resource-share-invitation \ --resource-share-invitation-arn "arn:aws:ram:us-east-1:OWNER_ACCOUNT_ID:resource-share-invitation/INVITATION_ID" \ --region us-east-1
Paso 3: Cuenta consumidora — Asociar la PHZ a la DNS View compartida
La consumidora asocia su propia PHZ a la DNS View de la propietaria. Este comando usa --region us-east-2 (plano de control del Global Resolver).
aws route53globalresolver associate-hosted-zone \ --hosted-zone-id Z00a1b2c3d4e5f67890 \ --resource-arn "arn:aws:route53globalresolver::OWNER_ACCOUNT_ID:dns-view/dnsv-0a1b2c3d4e5f67890" \ --name "team-b-internal-phz" \ --region us-east-2
Paso 4: Verificar la resolución
Desde un cliente autorizado (Access Source o Access Token), consulta un registro de la PHZ de la consumidora:
dig @ANYCAST_IP app.teamb.internal.example.com
Resultado esperado: se devuelve el registro A de la PHZ de la consumidora. Si el cliente no está autorizado, el resolutor devuelve REFUSED.
Solución de problemas
Si intentas una asociación de PHZ entre cuentas sin el uso compartido de DNS Views, te encontrarás con estos errores:
-
GR-ERR03603 ResourceNotFoundException: "Error validating hosted zone." La API
associate-hosted-zonesolo busca PHZ dentro de la cuenta de quien llama. La PHZ existe en una cuenta diferente. -
GR-ERR03102 ValidationException: "Unable to associate hosted zone." Quien llama es dueño de la PHZ, pero no puede apuntar a un ARN de DNS View en una cuenta diferente sin que haya un recurso compartido de RAM en su lugar.
-
MalformedArnException: You cannot share the selected resource type: Estás creando el recurso compartido de RAM en la Región equivocada. Los recursos compartidos de DNS View deben crearse en
us-east-1(Virginia), no enus-east-2(Ohio).
Todos los errores se resuelven completando los Pasos 1-3 anteriores con las Regiones correctas.
Puntos clave
-
La resolución de PHZ entre cuentas a través de Global Resolver requiere el uso compartido de DNS Views mediante AWS RAM.
-
La propietaria comparte la DNS View; la consumidora acepta y asocia sus PHZ.
-
La propietaria conserva el control total: puede eliminar asociaciones o dejar de compartir en cualquier momento.
-
Las asociaciones de PHZ de la consumidora se contabilizan en la cuota de la propietaria.
-
No se necesita asociación de VPC para las PHZ usadas con Global Resolver.
-
No hay costo adicional por compartir.
-
El recurso compartido de RAM va en us-east-1 (Virginia); las operaciones de Global Resolver van en us-east-2 (Ohio). Confundirlos causa
MalformedArnException.
Información relacionada
[1] Sharing Route 53 Global Resolver DNS views between AWS accounts
[2] Configuring private hosted zone associations
[3] Amazon Route 53 Global Resolver now supports sharing DNS Views between AWS Accounts (What's New)
[4] What is Route 53 Global Resolver
[6] AWS::Route53GlobalResolver::GlobalResolver (CloudFormation)
Contenido relevante
preguntada hace un año
preguntada hace un año
preguntada hace un año
