We are building something like specific blogging social platform. Architecture was originally intended as to have:
- single page application: all gui, rendered in the browser on the client
- frontend: mainly proxy layer, api for that SPA, accessible from the internet
- backend: not accessible from internet, just 443 port opened for frontend. Backend would have access to all the other systems (database, 3rd party systems, etc.)
Since we are limited on time and budget, we are thinking to simplify it as to go only with SPA + API at the beginning. API would be publicly accessible on 443 port and has open connection to all the remaining systems, althought the remaining systems would be in private network.
Is this model acceptable from the security point of view?
More specific variants:
A./ API connects directly to sensitive storage (db with user info)
B./ API has access to sensitive storages only via dedicated microservices, that exposes api that requires valid auth token and allow access only to matched user's account.
Thanks.