Pregunta sobre dns, amazon-route53, forwarding – Configure el reenvío de URL basado en DNS en Amazon Route53 [cerrado]

125

Estoy tratando de configurar el reenvío en Amazon Route53. Mi último servicio de DNS (Nettica) me permitió enrutar las solicitudes a "aws.example.com" a "https://myaccount.signin.aws.amazon.com/console/".

¿Esta funcionalidad es compatible con Route53?

¿Cómo logra esto Nettica? ¿Inserta un registro especial de A, CNAME, PTR o TXT?

Crear una distribución de Cloudfront con la URL como el origen también funciona. Simplemente apunte el dominio a la distribución de Cloudfront desde Route53 y asegúrese de configurar los certificados TLS correctamente. Deiwin

Tu respuesta

5   la respuesta
301

Me estaba encontrando exactamente con el mismo problema que describía Saurav, pero realmente necesitaba encontrar una solución que no requiriera nada más que la Ruta 53 y S3. Creé una guía de instrucciones para mi blog que detalla lo que hice.

Aquí es lo que se me ocurrió.

Objetivo

Usando solo las herramientas disponibles en Amazon S3 y Amazon Route 53, cree una redirección de URL que reenvíe automáticamentehttp://url-redirect-example.vivekmchawla.com a la página de inicio de sesión de la Consola de AWS con alias de "Mi Cuenta", ubicada enhttps://myaccount.signin.aws.amazon.com/console/ .

Esta guía le enseñará a configurar el reenvío de URL a cualquier URL, no solo a las de Amazon. Aprenderá cómo configurar el reenvío a carpetas específicas (como "/ console" en mi ejemplo), y cómo cambiar el protocolo de la redirección de HTTP a HTTPS (o viceversa).

Paso uno: Crea tu S3 Bucket

Abra la consola de administración S3 y haga clic en "Crear cubo".

Paso Dos: Nombra tu Cucharón S3

Elija un nombre de cubo. ¡Este paso es realmente importante! Debe asignar el nombre EXACTAMENTE a la cubeta que a la URL que desea configurar para el reenvío. Para esta guía, usaré el nombre "url-redirect-example.vivekmchawla.com".

Seleccione la región que mejor le funcione. Si no lo sabe, mantenga el valor predeterminado.

No te preocupes por configurar el registro. Simplemente haga clic en el botón "Crear" cuando esté listo.

Paso 3: habilitar el alojamiento de sitios web estáticos y especificar reglas de enrutamiento

En la ventana de propiedades, abra la configuración de "Alojamiento de sitios web estáticos".Seleccione la opción "Habilitar el alojamiento de sitios web".Introduzca un valor para el "Documento de índice". Este objeto (documento) nunca será servido por S3, y usted nunca tendrá que subirlo. Solo usa el nombre que quieras.Abra la configuración de "Editar reglas de redireccionamiento".

Pegue el siguiente fragmento de código XML en su totalidad.

<code><RoutingRules>
  <RoutingRule>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>myaccount.signin.aws.amazon.com</HostName>
      <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
      <HttpRedirectCode>301</HttpRedirectCode>
    </Redirect>
  </RoutingRule>
</RoutingRules>
</code>

Si tiene curiosidad acerca de lo que está haciendo el XML anterior, visite elDocumentación de AWM para "Sintaxis para especificar reglas de enrutamiento". Una técnica adicional (que no se trata aquí) se reenvía a páginas específicas en el host de destino, por ejemplohttp://redirect-destination.com/console/special-page.html. Lea sobre el<ReplaceKeyWith> Elemento si necesita esta funcionalidad.

Paso 4: tome nota del "punto final" de su cubo de redirección

Tome nota del "punto final" de alojamiento de sitios web estáticos que Amazon creó automáticamente para este grupo. Lo necesitará para más adelante, así que resalte la URL completa, luego cópiela y péguela en el bloc de notas.

¡PRECAUCIÓN! En este punto, realmente puede hacer clic en este enlace para verificar si sus Reglas de redirección se ingresaron correctamente, ¡pero tenga cuidado! Este es el por qué...

Digamos que ingresaste el valor incorrecto dentro de<Hostname> Etiquetas en tus Reglas de Redireccionamiento. Tal vez accidentalmente escribistemyaccount.amazon.com, en lugar demyaccount.signin.aws.amazon.com. Si hace clic en el enlace para probar la URL del punto final, AWS redirigirá su navegador a la dirección incorrecta.

Después de notar su error, probablemente editará el<Hostname> en sus Reglas de Redirección para corregir el error. Desafortunadamente, cuando intenta hacer clic en el enlace de nuevo, lo más probable es que termine siendo redirigido a la dirección incorrecta. Aunque arreglaste el<Hostname> entrada, su navegador almacena en caché la entrada anterior (¡incorrecta!). Esto sucede porque estamos usando una redirección HTTP 301 (permanente), que los navegadores como Chrome y Firefox almacenarán en caché de forma predeterminada.

Si copia y pega la URL del punto final en un navegador diferente (o borra la memoria caché en la actual), tendrá otra oportunidad de ver si está actualizado.<Hostname> La entrada es finalmente la correcta.

Para estar seguro, si desea probar su URL de punto final y las reglas de redireccionamiento, debe abrir una sesión de navegación privada, como "Modo de incógnito" en Chrome. Copie, pegue y pruebe la URL del punto final en modo incógnito y cualquier cosa almacenada en caché desaparecerá una vez que cierre la sesión.

Paso 5: Abra la consola de administración de Route53 y vaya a los conjuntos de registros para su zona alojada (nombre de dominio)

Seleccione la Zona Alojada (nombre de dominio) que usó cuando creó su cubo. Desde que nombré a mi grupo "url-redirect-example.vivekmchawla.com", seleccionaré la zona alojada de vivekmchawla.com.Haga clic en el botón "Ir a los conjuntos de registros".Paso 6: Haz clic en el botón "Crear conjunto de registros"

Al hacer clic en "Crear conjunto de registros" se abrirá la ventana Crear conjunto de registros en el lado derecho de la consola de administración de Route53.

Paso 7: Crear un conjunto de registros CNAME

En el campo Nombre, ingrese la parte del nombre de host de la URL que usó al nombrar su grupo S3. La "parte del nombre de host" de la URL es todo a la IZQUIERDA del nombre de su zona alojada. Llamé a mi grupo S3 "url-redirect-example.vivekmchawla.com", y mi zona alojada es "vivekmchawla.com", por lo que la parte del nombre de host que debo ingresar es "url-redirect-example".

Seleccione "CNAME - Nombre canónico" para el tipo de este conjunto de registros.

Para el valor, pegue en la URL de punto final del depósito de S3 que creamos en el Paso 3.

Haga clic en el botón "Crear conjunto de registros". Suponiendo que no haya errores, ahora podrá ver un nuevo registro CNAME en la lista de conjuntos de registros de su zona alojada.

Paso 8: prueba tu nueva redirección de URL

Abre una nueva pestaña del navegador y escribe la URL que acabamos de configurar. Para mi eso eshttp://url-redirect-example.vivekmchawla.com. Si todo funcionó correctamente, debería ser enviado directamente a una página de inicio de sesión de AWS.

Porque usamos elmyaccount.signin.aws.amazon.com Alias, como la URL de destino de nuestra redirección, Amazon sabe exactamente a qué cuenta estamos intentando acceder y nos lleva directamente allí. Esto puede ser muy útil si desea dar a los empleados o contratistas un enlace de inicio de sesión de AWS breve y limpio.

Conclusiones

Personalmente, me encantan los diversos servicios de AWS, pero si ha decidido migrar la administración de DNS a Amazon Route 53, la falta de un reenvío de URL fácil puede ser frustrante. Espero que esta guía haya ayudado a que la configuración del reenvío de URL para sus Zonas alojadas sea un poco más fácil.

Si desea obtener más información, consulte las siguientes páginas del sitio de documentación de AWS.

Ejemplo: configuración de un sitio web estático con un dominio personalizadoConfigurar un cubo para el alojamiento de sitios webCreando un dominio que usa la ruta 53Creación, modificación y eliminación de registros de recursos

¡Aclamaciones!

Ahh, la claridad! ¡Gracias! Will
Así que puede hacer HTTPS totalmente ahora, si configura un sistema de tres niveles dentro de AWS. Ahora, esto se está volviendo bastante ridículo solo por hacer redirecciones, pero los depósitos S3 pueden hacer las redirecciones como se describió anteriormente. Si desea realizar redirecciones HTTP -> HTTPS, puede hacerlo utilizando Amazon Cloudfront, que utilizará un certificado HTTPS gratuito generado por Amazon Certificate Manager. El sistema final tiene la Ruta 53 que se conecta a Cloud Front (que maneja el tráfico https), que se conecta a S3, que realiza la redirección. mlissner
¿Alguna idea de por qué estoy recibiendo unaError NoSuchBucket? fredley
Esto falla con SSL. S3 no tiene acceso a mi certificado SSL para realizar la redirección, y fuerzo todo mi tráfico a través de SSL. ¿Algún consejo? Costa
9
Actualizar

Si bien mi respuesta original a continuación sigue siendo válida y podría ser útil para comprender la causa de que el reenvío de URL basado en DNS no esté disponible a través deRuta del Amazonas 53 fuera de la caja, recomiendo echarle un vistazo a Vivek M. Chawla'ssolución indirecta totalmente inteligente a través del entretanto introducidoSoporte de Amazon S3 para redireccionamientos de sitios web y lograr un servidor autónomo menos y, por lo tanto, una solución gratuita dentro de AWS solo así.

La implementación de una solución automatizada para generar dichos redireccionamientos se deja como un ejercicio para el lector, pero rinda tributo a la respuesta épica de Vivek al publicar su solución;)Respuesta original

Nettica debe estar ejecutando una solución de redirección personalizada para esto, aquí está el problema:

Podrías crear un alias de CNAME comoaws.example.com paramyaccount.signin.aws.amazon.comSin embargo, DNS no proporciona soporte oficial para asignar alias a un subdirectorio comoconsole en este ejemplo.

Es una pena que AWS no parezca que simplemente haga esto de forma predeterminada al golpearhttps://myaccount.signin.aws.amazon.com/ (Solo lo intenté), porque resolvería tu problema de inmediato y tendría mucho sentido en primer lugar; Además, debería ser bastante fácil de configurar en su extremo.

Por esa razón, algunos proveedores de DNS aparentemente han implementado una solución personalizada para permitir redirecciones a subdirectorios; Me atrevo a suponer que básicamente están facilitando un alias de CNAME para un dominio propio y están redireccionando de nuevo desde allí al destino final a través de un enlace inmediato.Redirección HTTP 3xx.

Por lo tanto, para lograr el mismo resultado, debe tener un servicio HTTP que ejecute estos redireccionamientos, lo cual no es la solución simple que uno esperaría, por supuesto. Tal vez / Espero que alguien pueda llegar a un enfoque más inteligente aún.

Estás en el clavo. Esto es exactamente lo que estaba pasando. Saurav
Los CNAME son alias y no redirigen. ejain
@ejain: tiene razón, por supuesto, he corregido esto en consecuencia (debe haber perdido la notificación en ese momento); ¡Gracias por señalar esta expresión potencialmente engañosa! Steffen Opel
11

Pude usar nginx para manejar la redirección 301 a la página de inicio de sesión de aws.

Vaya a su carpeta conf nginx (en mi caso es/etc/nginx/sites-available en el que creo un enlace simbólico a/etc/nginx/sites-enabled para los archivos conf habilitados).

A continuación, agregue una ruta de redirección

<code>server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.amazon.com/console;
}
</code>

Si está utilizando nginx, lo más probable es que tenga bloques de servidores adicionales (hosts virtuales en la terminología de apache) para manejar su vértice de zona (example.com) o como quiera que esté configurado. Asegúrese de tener uno de ellos configurado como su servidor predeterminado.

<code>server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}
</code>

En la ruta 53, agregue unA record paraaws.example.com y establezca el valor en la misma IP utilizada para el vértice de su zona.

Aún mejor sería utilizar un registro de Alias ​​para apuntar al equilibrador de carga elástico en frente de esta máquina. maletor
121

El soporte de AWS apuntaba a una solución más simple. Es básicamente la misma idea propuesta por @Vivek M. Chawla, con una implementación más simple.

AWS S3:

Crea un cubo con tu dominio completo, comoaws.example.comEn las propiedades del cubo, seleccioneRedirect all requests to another host name e ingrese su URL:https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

Crear un conjunto de registros de tipo A. Cambiar Alias ​​aYes. Haga clic enAlias Target y seleccione el cubo S3 que creó en el paso anterior.

Referencia:Cómo redirigir los dominios utilizando los servicios web de Amazon

Documentación oficial de AWS:¿Hay una manera de redireccionar un dominio a otro dominio usando Amazon Route 53?

Esto funciona muy bien para HTTP pero no para HTTPS. mythofechelon
No lo recomendaría de esa manera, ya que los resultados se almacenan en la memoria caché y el tiempo de actualización toma un tiempo, además, solo se admitirán dominios. Lorenz Lo Sauer
Esta debería ser la mejor respuesta. Shwaydogg
@Pawel deberías ver el cubo de inmediato. Asegúrese de que el nombre del depósito sea exactamente igual al del dominio route53 completo. Por ejemplo, si está creando un registro de Alias ​​A con el nombre "mysubdomain", el nombre de su grupo debería ser "mysubdomain.domain.com". Roberto Schneiders
0

Si aún tiene problemas con el enfoque simple, cree un cubo vacío y luegoRedirect all requests to another host name Bajo alojamiento web estático en propiedades a través de la consola. Asegúrese de haber configurado 2 registros A en route53, uno parafinal-destination.com y uno pararedirect-to.final-destination.com. La configuración de cada uno de estos será idéntica, pero el nombre será diferente, por lo que coincidirá con los nombres que estableció para sus grupos / URL.

Preguntas relacionadas