Cómo resolver un DNS Privado en Route 53 Multi-Region.

Es posible, que en ocasiones tengamos la necesidad de resolver por DNS Privado, el llamado a una aplicación en una instancia EC2 que se encuentre en la cuenta A de AWS desde la Cuenta B de AWS que necesita consumir el servicio.

Lo anterior, es muy util incluso por diseño, para no hacer el llamado hacia IP privadas; teniendo en cuenta que esta puede llegar a cambiar en algún momento de fallas.

Este caso de uso tiene 2 soluciones posibles , los cuáles son :

  1. Opción A: asociar una zona hospedada privada de Route 53 con una VPC en una cuenta de AWS diferente.
  2. Opción B: Usar en Route 53 resolver inbound y outbound endpoint.

En este Post. Explicaremos como resolverlo a través de la Opción A; la cual consideremos en nuestro caso la mejor opción y mas rápida.Requisitos:

  • Tener una VPC Peering entre la Cuentas AWS A y la Cuenta AWS B
  • Tener una Zona Hosteada Privada en Route 53 en la Cuenta AWS A.
  • Contar con AWS CLI desde la máquina desde donde se vayan a ejecutar los comandos necesarios.
  • Crear un usuario IAM En la cuenta A con permisos para ejecutar comandos AWS CLI y con permisos exclusivos en Route 53 para “CreateVPCAssociationAuthorization”.
  • Crear un usuario IAM en la cuenta B con permisos para ejecutar comandos AWS CLI y con permisos exclusivos en Route 53 para “AssociateVPCWithHostedZone”.
  • Contar con el ID de la cuenta AWS B , VPC ID de la cuenta AWS B , CIDR de la VPC de la cuenta AWS B y Viceversa de la cuenta A para el Peering entre las VPC.

A pesar que para este Post deberíamos tener ya establecido el Peering entre las VPC de ambas cuentas y mostrar únicamente el procedimiento para resolver el DNS Privado , hemos decidido mostrarlo completo para los que quieran realizar todo el procedimiento. Los que ya tengan esto resuelto favor ir a la sección Establecer la Zona privada en Route 53 y desde allí ver los pasos necesarios si ya cuenta con el VPC Peering.

Como establecer el Peering VPC entre ambas cuentas de AWS.

A continuación mostramos los pasos para establecer el Peering desde la Cuenta A de AWS.

Cuenta AWS A

Ahora después de crear el VPC Peering tendremos un breve resumen de la solicitud.

Seguido de la solicitud ahora en la cuenta AWS B , debemos aceptar la solicitud para establecer el Peering.

para eso entramos en VPC → VPC Peering y aceptamos.

Ahora vemos un resumen de la aceptación del Request del Peering de la cuenta A y aceptamos viendo el status “ Active”.

Ahora debemos agregar en cada una de las cuentas , las rutas de la red que esperamos alcanzar ; es decir en la Cuenta A poner la Red de la VPC de la cuenta B y en la Cuenta B en su tabla de ruteo poner la Red de la VPC de la cuenta A.

En la cuenta AWS A debes agregar para este caso lo siguiente

Tabla de ruteo Cuenta AWS A
Tabla de ruteo Cuenta AWS B

Establecer la Zona DNS Privada en Route 53

Procedemos en la Cuenta AWS A a crear nuestra Zona DNS Privada.

para nuestro Lab higcloudtec.com

Después de crear la zona DNS Privada en la cuenta AWS A creamos el registro de Tipo A que apunte a la instancia que queremos que resuelva con el nombre servidor1.higcloudtec.com

Creación del usuario IAM en la cuenta AWS A para autorizar la VPC asociada en Route 53.

Recuerde escoger el tipo de acceso “Programatic access”

Debes asociar la siguiente política granular de IAM para ese usuario ( tenga en cuenta que asignar la política administrada Full Acces de Route 53 no será suficiente)

{“Version”: “2012–10–17”,“Statement”: [{“Sid”: “VisualEditor0”,“Effect”: “Allow”,“Action”: “route53:CreateVPCAssociationAuthorization”,“Resource”: “*”}]}

Luego debe configurar la llave en la maquina desde donde ejecutará el siguiente comando para este ejemplo del Post.

aws route53 create-vpc-association-authorization — hosted-zone-id Z05585021Y3ZCMWVDT9PM — vpc VPCRegion=us-west-2,VPCId=vpc-0ceeb95324657aa96

Una vez ejecutado tendrá una salida exitosa del comando como se muestra en la imagen.

Creación del usuario IAM en la cuenta AWS B para autorizar la VPC asociada en Route 53.

Recuerde escoger el tipo de acceso “Programatic access”

Creación usuario IAM Cuenta AWS B

Debes asociar la siguiente política granular de IAM para ese usuario ( tenga en cuenta que asignar la política administrada Full Acces de Route 53 no será suficiente)

{“Version”: “2012–10–17”,“Statement”: [{“Sid”: “VisualEditor0”,“Effect”: “Allow”,“Action”: “route53:AssociateVPCWithHostedZone”,“Resource”: “*”}]}

Luego debe configurar la llave en la maquina desde donde ejecutará el siguiente comando para este ejemplo del Post.

aws route53 associate-vpc-with-hosted-zone — hosted-zone-id Z05585021Y3ZCMWVDT9PM — vpc VPCRegion=us-west-2,VPCId=vpc-0ceeb95324657aa96

Una vez ejecutado tendrá una salida exitosa del comando como se muestra en la imagen.

Una vez ya tenemos los 2 comandos con cada usuario IAM ya podremos hacer un Ping desde una instancia de la cuenta AWS B al dns servidor1.higcloudtec.com que se encuentra en la cuenta AWS A.

Test resolución DNS
Prueba conectividad a través de DNS

Conclusiones:

Recomiendo, realizar siempre en los diseños de arquitectura en los que se consumen servicios entre cuentas de AWS; hacer el Setup con los siguientes pasos. Todo esto , debido a que un plan de recuperación de desastres (DRP) es muy necesario al trabajar con apuntamientos DNS; para así tener cambios rápidos de registros en DNS y poder recuperarnos de manera fácil.

Fuente de consulta : https://aws.amazon.com/es/premiumsupport/knowledge-center/private-hosted-zone-different-account/

--

--

Entrepreneur, travel lover, AWS x3, CIO High Cloud Tec , AWS Community Builder, passionate about cloud learning

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Oscar Ivan Ocampo

Entrepreneur, travel lover, AWS x3, CIO High Cloud Tec , AWS Community Builder, passionate about cloud learning