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

标签 spring-boot amazon-s3 aws-sdk ehcache pre-signed-url

我正在开发一个 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。特别是在驱逐列表中的缓存之后。
  • 是否有任何解决方案可用于在此 spring-boot 应用程序之外维护此预签名 url。那就是期待像其他微服务一样的东西可以处理这个预签名的 url 并且将被移动应用程序直接使用。

  • 任何回应表示赞赏

    最佳答案

    Amazon 建议将其服务器端加密与 AWS KMS 托管 key (SSE-KMS) 结合使用。这是指向 Amazon blog series 的链接关于如何使用他们的 aws-sdk for Java 完成。这是该系列第 2 部分(共 3 部分)的链接。

    关于spring-boot - 如何解决共享 Amazon S3 预签名 URL 的风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630683/

    相关文章:

    java - Spring Boot Security 4 与 ZooKeeper - 安全集成问题

    java - 将 Mule Tomcat WAR 转换为 Spring Boot 时出现问题

    amazon-web-services - S3 策略允许写入存储桶但不允许从中读取,这可能吗?

    email - 使用 AWS 设置 Sendgrid

    Swift Xcode 索引卡住或缓慢

    java - Apache Camel 与 Spring Boot 413 请求实体太大

    java - Hsql异常: type not found or user lacks privilege: DATETIMEOFFSET

    ios - 某些图像未显示在 react-native-fastimage 中

    node.js - DynamoDB - putItem - 具有嵌套数据类型的 map (NodeJS、aws-sdk)

    javascript - 如何使用 lambda 在 dynamoDB 中创建对象?