Bloquear o acesso direto ao site estático no Azure Blob Storage e permitir apenas o Azure Front Door

Bloquear o acesso direto ao site estático no Azure Blob Storage e permitir apenas o Azure Front Door

Eu tenho um webapp SPA implantado no Azure Blob Storage cujo URL é público. Por exemplohttps://example.z23.web.core.windows.net/

Gostaria de usar o Azure Front Door com WAF para aumentar a segurança. Existe uma maneira de bloquear o acesso direto ao URL do blob? Pesquisei no Google e encontrei muitas respostas por aí, uma delas é simplesmente permitir apenas AzureFrontDoor.BackendIPs nas configurações de rede da conta de armazenamento. Eu tentei e funcionou.

No entanto, esse método ainda tem uma lacuna, pois qualquer pessoa pode simplesmente criar um Front Door e apontar para o URL do meu blob (se descobrir de alguma forma).

(Isso pode parecer idiota): se eu continuar com esse método e nomear minha conta de armazenamento aleatoriamente, por exemplo, use um GUID aleatório reduzido. (https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) Isso pode reduzir a possibilidade de alguém descobrir meu URL e ignorar a segurança?

Outro método queO Azure recomendaé verificar o X-Azure-FDIDcabeçalho que inclui o ID da minha instância específica do Front Door e descartar solicitações que não contenham esse cabeçalho. Perguntei ao meu desenvolvedor se isso é possível no webapp Vue e ele disse que precisaríamos incluir o Front Door ID no código que é executado no lado do cliente, expondo assim o ID ao público de qualquer maneira. (Isso não é Stack Overflow, mas se alguém puder sugerir algo sobre isso, seria ótimo)

Outra maneira que encontrei é usar o SKU Azure Front Door Premium, queapoiaconectando-se à conta de armazenamento usando o link privado. Isso é perfeito, mas custa incríveis US $ 165 por mês. Prefiro implantar meu código no Serviço de Aplicativo, pois ele pode restringir nativamente o acesso apenas do Front Door.

Alguém pode sugerir algum método para conseguir isso?

Obrigado.

Responder1

Verificar o cabeçalho X-Azure-FDID, em combinação com a restrição de IP, é a única maneira de bloqueá-lo atualmente sem seguir a rota do link privado. Portanto, você precisaria obter o código do seu aplicativo para validar isso, já que não há mais nada entre o FD e a conta de armazenamento.

Embora ter isso no código do lado do cliente exponha o ID, isso realmente não importa. As restrições de IP significam que você só permite o tráfego de instâncias do Front Door e não há como um invasor definir esse ID em uma instância FD diferente.

informação relacionada