spring-boot – 如何解决共享Amazon S3预签名URL的风险?

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

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

问题

>如何保护AWS S3预先签名的网址免受可以在移动应用中窥探请求和响应的黑客的攻击.
>由于我在spring-boot应用程序中强制执行缓存,因此在此缓存超时之前,我无法使预先签名的URL到期.将使用包含预签名URL的缓存响应,直到缓存超时.我们计划使缓存超时(比如5分钟)小于预先签名的url超时(比如说7分钟)

问题

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

任何回应都很感激

最佳答案 亚马逊建议将其服务器端加密与AWS KMS管理密钥(SSE-KMS)一起使用.这是一个关于如何使用他们的aws-sdk for
Java
Amazon blog series的链接.这是该系列中第2部分的链接.

点赞