首页 文章

通过移动应用程序上传到S3的最安全的解决方案

提问于
浏览
2

我需要通过移动应用程序在AWS S3上上传文件 . 我找到了两个解决方案来处理它 . 这两种解决方案都有效,但我没有足够的能力确定什么是最安全的解决方案 .

  • 使用安全令牌服务(STS)Amazon Web Services提供的 temporary credentials .

  • 我的服务器使用AWS账户access_key_id&secret_access_key向STS请求临时凭证(具有受限权限)

  • 我的服务器然后将临时凭证(access_key_id,secret_access_key和session_token)发送到移动应用程序

  • 移动应用程序使用具有特定请求签名的临时凭证在S3上发送文件(在移动端计算)

  • 使用 permanent credentials (AWS账户access_key_id&secret_access_key)

  • 我的服务器直接创建请求签名(使用AWS账户access_key_id&secret_access_key)并将请求"elements/structure"(包括生成的签名,所需的 Headers ,...)发送到移动应用程序

  • 移动应用程序使用带有服务器提供的签名的"elements"在S3上发送文件

第二种解决方案更简单 . 但该解决方案似乎不太安全:帐户access_key_id被公开,签名直接使用account_access_key帐户生成 . 用于生成签名的摘要算法是HMAC-SHA1 . 它足够安全吗?

第二个解决方案暴露临时凭证到期:公开有限凭证更安全 . 如果HMAC-SHA1算法足够安全以使secret_access_key无法检索,我不明白为什么我会选择这个解决方案 .

感谢您的投入

1 回答

  • 0

    您的临时解决方案基本上是Token Vending Machine . 这是我们建议的方法,用于将凭证获取到设备以与我们的AWS Mobile SDK一起使用 . 运送临时凭证的固有好处是它们可用于访问除S3之外的其他服务 .

相关问题