我正在开发一个Spring-boot REST API应用程序。以下是用例


所有REST API端点均使用HTTPS保护。
根据请求,此应用程序中的所有响应都会缓存30分钟。
我的REST API响应之一包含AWS S3预签名URL。
REST API将由移动应用程序使用


问题


如何保护AWS S3预签名URL免受黑客攻击,这些黑客可以在移动应用程序中窥探请求和响应。
由于我在spring-boot应用程序中实施了缓存,因此无法在此缓存超时之前使预签名的url失效。包含预签名URL的缓存响应将一直使用,直到缓存超时。我们计划使缓存超时(例如5分钟)小于预先签名的url超时(例如7分钟)


问题


如何保护AWS S3预签名URL免受黑客攻击
如何智能地处理此缓存逻辑,因为我不想经常重新生成此预签名URL。特别是在清除列表上的缓存之后。
是否有任何解决方案可以将这个预签名的url保留在该Spring Boot应用程序之外。期望其他微服务之类的东西可以处理此预签名的url,并将直接由移动应用程序使用。


任何回应表示赞赏

最佳答案

亚马逊建议将其服务器端加密与AWS KMS托管密钥(SSE-KMS)结合使用。这是Amazon blog series的链接,该链接介绍了如何使用Java的aws-sdk完成操作。这是该系列中第3部分第2部分的链接。

10-08 08:16
查看更多