Práctica recomendada para redirigir solicitudes que no son de Cloudfront a Cloudfront en nginx

0

Nuestra arquitectura se ve así:

                                  ┌──► Backend servers
CloudFront ───► Heroku ──► Nginx ─┤
                                  └──► Frontend servers

Por razones de seguridad, no queremos que alguien piratee la URL para acceder a los dynos de heroku. Queremos redirigir todas las solicitudes que no están en la nube que van a heroku para ser redirigidas a la CDN.

Por ejemplo, si la url de heroku es heroku.url.comy la url de cloudfront es cloudfront.url.com, cuando alguien escribe en su navegador:, heroku.url.com/some_resourcequeremos redirigirlos a cloudfront.url.com/some_resourcepara que Cloudfront sea la única entidad que realmente solicite heroku directamente.

Sé que podemos:

  1. Utilice el User-Agentque Cloudfront establece para Amazon Cloudfrontredirigir las solicitudes (aunque alguna entidad malintencionada podría simplemente establecer el User-Agentvalor de Cloudfront
  2. Haga que cloudfront incluya un encabezado personalizado con un valor secreto en cada solicitud a Heroku y redirija todas las solicitudes que no tengan ese encabezado a Cloudfront

¿Cuáles son las mejores prácticas para lograrlo? y ¿cómo se vería eso en el archivo de configuración de nginx?