从 Android 应用程序访问 AWS S3,无需硬编码访问密钥

问题描述 投票:0回答:3

我是 AWS 新手。我想从我的 Android 应用程序访问 S3 存储桶,以便上传存储在 Android 设备的“下载”文件夹中的文件。我已经按照 this 教程尝试并完成了该操作。但是,我不想在我的源代码中包含访问密钥 ID 和秘密访问密钥。我发现可能有一种方法可以使用 AWS Cognito 来执行此操作,但我还没有找到指导教程。我也愿意使用其他方式访问 S3,只要我不必对密钥进行硬编码。我还在 StackOverflow 上发现了一些与此相关的问题,但还没有得到很好的解答。

任何能指引我正确方向的事情都会有帮助。

java android amazon-web-services amazon-s3 amazon-cognito
3个回答
3
投票

不推荐将您的凭据直接存储在移动应用程序中。相反,我建议从后端服务器请求临时凭据。后端可以为具有有限访问权限的 S3 创建 STS 令牌并将其提供给您。欲了解更多信息,请参阅以下链接:

https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/prog-services-sts.html


1
投票

AWS Cognito 是最佳选择。通过身份池,您可以发送 access_keys,允许您和您的用户访问您的 S3 存储桶。

我知道网上没有明确的分步教程,几周前我不得不自己弄清楚(react js 和 django 后端)。

官方文档对我帮助很大。验证功能并不复杂。您还可以按照本教程了解 aws 设置过程。祝你好运!


0
投票

在 S3 上上传文件的更好方法之一是使用预签名 url。您可以创建一个 API 来生成用于在 S3 上上传文件的预签名 url。

访问此处了解操作方法 - https://medium.com/@aidan.hallett/securing-aws-s3-uploads-using-presigned-urls-aa821c13ae8d

© www.soinside.com 2019 - 2024. All rights reserved.