如何确保只能从授权设备访问 S3 预签名 GetObject URL?

How to make sure a S3 presigned GetObject URL can only be accessed from an authorized device?

我想提供预签名的 s3 url 供经过身份验证的用户下载文件。我的后端有一个基于 JWT 的身份验证,URL 可以根据令牌在我的后端生成。因此,如果用户在设备上通过身份验证,他们可以单击一个按钮,它会打开一个指向预签名 url 的新选项卡。我的问题是,如何防止用户将 url 复制到未经身份验证的设备上并从那里访问文件?我提到了 这个,但它并没有解决我的问题。

通常不,那是不可能的,预签名 URL 在任何浏览器和任何设备上都有效。您不能阻止用户复制和共享 link.

您唯一可以做的就是缩短预签名 url 的有效期,如果您在新选项卡中打开 link 并设置预签名 [=20] 的持续时间=] 只是例如5 秒后,你会大大减少机会 或用户能够及时分享 link 的效果。