I want to prevent direct interaction with my S3 bucket. While my S3 bucket is properly configured, I want to find a (performant) method to lock down access to a single i.p while still serving files off of S3.
The architecture I envision is something:
user request -> proxy web application -> s3 bucket
Such that the user is not exposed to, or made aware of the use of S3. The liability I am trying to find a way around, is that this will involve me paying for the CPU load for every request, reducing many of the advantages of using S3 in the first place. I Imagine achieving this goal would involve a very quick, and very minimal web service.
Is there a way to hide S3 from users without wasting it's advantages in a proxy?
NB:
I don't want to consider that S3 may be safely configured. In my case, there are organizational reasons to consider further safety procedures. I would enjoy the thought exercise here even if it is truly the wrong choice.
Additionally, it is not an option use a service instead of S3. We are just talking about S3 here.