从应用程序隐藏 AWS 秘密

Hiding AWS secret from application

我是一名 Java 后端工程师,致力于前端(SPA 和 Android)必须将(大)文件发送到 S3 的功能。因为我必须处理很多请求。由于网络过载的原因,我避免在前端向我发送文件以便我可以将其发送到 S3 的地方创建 'proxy' 服务,但我对确保我的应用程序安全的最佳方式有些担忧。

我寻找了一些解决方案,但找不到能够完全满足我需求的解决方案。

Amazon S3 upload with not showing secret key in frontend

这个post几乎已经是我的答案了,但是我没有足够的分数来发表评论。 S3 upload directly in JavaScript

我阅读了一些关于 AWS 的文档,但我仍然有一些问题和一些必要条件。

哪种解决方案可能适合我?

您认为这些方法行得通吗?你觉得哪一个更好?有什么权衡取舍?还有其他方法可以解决这个问题吗?

此处最好的做法是使用 Cognito 服务在应用程序中生成允许上传到 S3 的匿名凭据。对于 Android,您可以使用 SDK 然后从设备向 S3 进行分段上传,这也将加快该过程。

我找不到确切的 Android 示例,但这是 iOS 的示例,术语应该与另一个 SDK 相同:iOSTransferManager

如果您有基于网络的应用程序,您也可以直接从 javascript 调用 Cognito:Cognito in JS example 希望有帮助! - 克里斯