Bloquear el acceso directo al sitio web estático en Azure Blob Storage y permitir solo Azure Front Door

Bloquear el acceso directo al sitio web estático en Azure Blob Storage y permitir solo Azure Front Door

Tengo una aplicación web SPA implementada en Azure Blob Storage cuya URL es pública. P.ejhttps://ejemplo.z23.web.core.windows.net/

Me gustaría utilizar Azure Front Door con WAF para aumentar la seguridad. ¿Existe alguna forma de bloquear el acceso directo a la URL del blob? Lo busqué en Google y encontré muchas respuestas, una de ellas es simplemente permitir solo AzureFrontDoor.BackendIP en las configuraciones de red de la cuenta de almacenamiento. Lo intenté y funcionó.

Sin embargo, este método todavía tiene una laguna jurídica, ya que cualquiera puede simplemente crear una puerta principal y señalar la URL de mi blob (si la descubre de alguna manera).

(Esto puede parecer una tontería): si sigo con este método y nombro mi cuenta de almacenamiento al azar, por ejemplo, uso un GUID aleatorio recortado. (https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) ¿Puede esto reducir la posibilidad de que alguien descubra mi URL y eluda la seguridad?

Otro método queAzure recomiendaes verificar el X-Azure-FDIDencabezado que incluye el ID de mi instancia particular de Front Door y descartar solicitudes que no contengan este encabezado. Le pregunté a mi desarrollador si esto es posible en la aplicación web Vue y dijo que necesitaríamos incluir el ID de Front Door en el código que se ejecuta en el lado del cliente, exponiendo así el ID al público de todos modos. (Esto no es Stack Overflow, pero si alguien puede sugerir algo al respecto, sería genial)

Otra forma que encontré es usar el SKU Premium de Azure Front Door queapoyaconectarse a la cuenta de almacenamiento mediante Private Link. Esto es perfecto, pero cuesta la friolera de 165 dólares al mes. Prefiero implementar mi código en App Service, ya que puede restringir de forma nativa el acceso solo desde Front Door.

¿Alguien puede sugerir algún método sobre cómo lograr esto?

Gracias.

Respuesta1

Verificar el encabezado X-Azure-FDID, en combinación con la restricción de IP, es la única forma de bloquear esto actualmente sin seguir la ruta del enlace privado. Por lo tanto, necesitará obtener el código de su aplicación para validarlo, dado que no tiene nada más entre FD y la cuenta de almacenamiento.

Si bien tener esto en el código del lado del cliente expondría la identificación, realmente no importa. Las restricciones de IP significan que solo se permite el tráfico desde instancias de Front Door y que un atacante no puede establecer esa ID en una instancia de FD diferente.

información relacionada