【发布时间】:2013-03-26 09:21:05
【问题描述】:
我需要通过移动应用程序在 AWS S3 上上传文件。我找到了 2 个解决方案来处理它。 两种解决方案都有效,但我没有足够的能力来确定最安全的解决方案。
-
使用由 Secure Token Service (STS) Amazon Web Services 提供的临时凭证。
- 我的服务器使用 AWS 账户 access_key_id 和 secret_access_key 请求 STS 的临时凭证(权限受限)
- 然后我的服务器将临时凭据(access_key_id、secret_access_key 和 session_token)发送到移动应用程序
- 移动应用使用具有特定请求签名的临时凭证在 S3 上发送文件(在移动端计算)
-
使用永久凭证(AWS 账户 access_key_id 和 secret_access_key)
- 我的服务器直接创建请求签名(使用 AWS 账户 access_key_id 和 secret_access_key)并将请求“元素/结构”(包括生成的签名、所需的标头...)发送到移动应用程序
- 移动应用使用带有服务器提供的签名的“元素”在 S3 上发送文件
第二种解决方案更简单。但该解决方案似乎不太安全: 账户 access_key_id 被暴露,直接用账户 secret_access_key 生成签名。 用于生成签名的摘要算法是 HMAC-SHA1。够安全吗?
第二种解决方案公开临时凭据并过期:公开有限凭据更安全。如果 HMAC-SHA1 算法足够安全,无法检索到 secret_access_key,我不明白我为什么会选择这个解决方案。
感谢您的意见
【问题讨论】:
标签: amazon-web-services amazon-s3