amazon-web-services - 使用 S3 从移动应用程序保存图像

标签 amazon-web-services mobile amazon-s3 amazon-iam

我正在创建一个后端服务,该服务将从 Android 应用程序获取有关创建某些服务请求的请求。这些服务请求将包含有关服务项目的详细信息以及与请求相关的一些图像。我们想使用 S3 直接从 android 应用程序存储图像,并通过对后端服务的 API 调用获取保存图像的 key 。

这种方法的问题是移动应用程序访问共享存储桶的授权。

  • 如果我们在应用程序中保存共享存储桶的访问 key ,则此代码可以被反编译并且 secret 将被泄露。
  • 另一种选择是在后端服务上创建一个 API,该 API 将在需要将图像放入 S3 之前将授权 key 返回给移动应用程序。通过这种方式,我们还可以定期轮换 secret 。

就安全性而言,这些方法中的哪一个更好?我还缺少其他方法吗?这听起来像是使用 S3 保存文件的标准访问实践,因此必须有适合这种特定场景的东西。

最佳答案

您无需发明 API 来执行此操作 - AWS 仅针对此用例提供其 STS 服务。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html

To request temporary security credentials, you can use the AWS STS API actions.

要调用 API,您可以使用其中一个可用的 AWS 开发工具包 适用于各种编程语言和环境,包括 Java、.NET、Python、Ruby、Android 和 iOS。 SDK负责 诸如对您的请求进行加密签名、重试等任务 必要时请求,并处理错误响应。您也可以使用 AWS STS 查询 API,在 AWS 安全 token 中进行了描述 服务 API 引用。最后,两个命令行工具支持 AWS STS 命令:AWS 命令​​行界面和 AWS 工具 Windows PowerShell。

AWS STS API 操作返回临时安全凭证 由访问 key 和 session token 组成。访问 key 包括 访问 key ID 和 secret key 。用户(或应用程序 用户运行)可以使用这些凭证来访问您的资源。 创建凭据时,它们与 IAM 相关联 限制用户在使用时可以做什么的访问控制策略 证书。有关详细信息,请参阅使用临时安全性 请求访问 AWS 资源的凭证。

关于amazon-web-services - 使用 S3 从移动应用程序保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733276/

相关文章:

html - 字体大小为 :30px still autozooms when activated on mobile 的文本区域

html - 使用 html5 捕获移动 chrome 上的麦克风输入

amazon-s3 - AWS S3 CLI 使用新名称移动文件

node.js - AWS CodeBuild 永远转移到 S3 步骤

javascript - 从 Amazon S3 中提取 PDF 并直接在浏览器中从缓冲区/流中呈现

python - “chalice deploy”调用以“Unknown parameter in input: ”结尾

node.js - 使用 Nodejs 重命名文件

android - Honeycomb 仅适用于平板电脑吗?

amazon-web-services - 在 CentOS 服务器中恢复 'sshd_config' 文件

java - 将预先编写的 SpringMVC + Hibernate 部署到 AWS