I have uploaded my ReactJS SPA to Blob storage and I have enabled static website hosting.
Now I have this Primary endpoint url: https://myapp1.z11.web.core.windows.net/
and I can view the website with it.
However, in order for my website to be accessible by customers, I must do "Enabled from all networks" in the "Public network access" section of networking configurations.
What does it mean to make it public? Does it mean the files stored in the container are all available for downloading from the public internet? Or does it only mean that the static website is accessible from the public?
Is this a bad practice to make it public? What are the risks?
I have tried to put Azure FrontDoor in front of the Blob Storage static website. However, here are the problems:
I still need to enable Public network access for all networks in the blob storage, to allow the frontdoor to access the website.
If I wish to keep the Blob private instead of public, It is recommended to use private link with FrontDoor Premium. However the Premium is too expensive and it is absolutely ruled out.
Azure should provide a simple way to make Blob storage hosting a static website private, and allow traffic only from a standard / classic FrontDoor instance. AWS provides such features with their CloudFront and S3 bucket, they are really handy.
FrontDoor provides protections against XSS and DDoS, which Blob storage static website does not provide.