![Bloquear o acesso direto ao site estático no Azure Blob Storage e permitir apenas o Azure Front Door](https://rvso.com/image/770099/Bloquear%20o%20acesso%20direto%20ao%20site%20est%C3%A1tico%20no%20Azure%20Blob%20Storage%20e%20permitir%20apenas%20o%20Azure%20Front%20Door.png)
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.Backend
IPs 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-FDID
cabeç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.