【发布时间】:2019-10-29 21:59:43
【问题描述】:
我目前正在开发一个可以读取和上传到 AWS S3 存储的 Android 应用程序。
所有用户只能通过应用访问 S3 文件,无需任何用户登录信息。
我搜索了 Amazon Cognito、IAM 和 STS 文档,但由于选项太多,我不知道我的项目应该遵循哪一个。
简而言之:
所有应用用户只能从应用访问 S3 存储桶文件。
应用用户应该能够访问 S3 存储桶文件而无需登录。(临时访问)
编辑
我有一个使用硬编码密钥和秘密密钥的有效解决方案,它只允许应用用户访问 S3 存储桶。问题是 Google 向我发送了一封关于泄露 AWS 凭证的电子邮件:
泄露的 AWS 凭证 您的应用会公开 Amazon Web Services 凭据。
我按照本指南进行了设置:https://grokonez.com/android/uploaddownload-files-images-amazon-s3-android
谢谢!
【问题讨论】:
-
您希望应用程序的所有用户能够访问这些文件,还是某些文件只针对某些用户(例如私人信息/照片)?您是否担心人们可能会对您的应用程序进行逆向工程以提取凭据并因此可以访问文件,或者您会接受这种可能性吗?您是否正在运行后端服务,或者您只编写了一个应用程序?
-
我希望所有应用用户都能访问 S3 存储桶中的图像和 JSON 文件。
-
你有后端服务在运行,还是你只写了一个应用程序?
-
对不起,我在写完之前不小心添加了评论。我只编写了应用程序,只要我的 AWS 账户不被泄露,我不介意逆向工程访问这些文件。我之前有一个使用硬编码密钥和密钥的解决方案,但收到了来自 Google 的关于“泄露的 AWS 凭据”的消息(您的应用程序公开了 Amazon Web Services 凭据。)使用硬编码的密钥和密钥我能够阅读和上传,但我想这不安全。我按照本指南实现了这一目标:grokonez.com/android/…
标签: android amazon-web-services amazon-s3 amazon-cognito amazon-iam