我需要保护我的 s3 存储桶对象。在我的 Web 应用程序中,我使用 aws-sdk 将媒体上传到 s3 存储桶并获取 http 链接以访问该对象。这个 http 链接默认是公开的,我想让它安全,这样只有授权用户才能访问媒体。aws s3 允许将对象设为私有,但它不会让任何拥有链接的人访问该对象。
将从我不想使用 aws-sdk 的移动应用程序访问此链接,相反,每当有人尝试访问对象的 http 链接时,我想在 aws 端执行一些逻辑。
我想要发生的是,在用户访问 s3 对象之前,一些授权代码将执行(如 jwt 令牌授权),并且根据它,用户将被授予/拒绝访问。
我目前正在研究 Amazon API 网关,我相信它们可以作为 http 链接访问,并且 AWS Lambda 可用于保护它们(我将在其中执行我的 jwt 授权者)。然后这些 api 将可以在内部访问 s3。
如果有人能指出我正确的方向,如果这是可能的话。如果我可以使用从我的 Web 应用程序发出的相同 jwt 令牌将请求发送到 Amazon API Gateway,那就太好了。