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

时间:2013-04-04 10:40:10

标签: amazon-web-services amazon-s3

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

  1. 使用安全令牌服务(STS)Amazon Web Services提供的临时凭证

    1. 我的服务器使用AWS账户access_key_id&amp ;;向STS请求临时凭证(具有受限权限)。 secret_access_key
    2. 我的服务器然后将临时凭证(access_key_id,secret_access_key& session_token)发送到移动应用
    3. 移动应用程序使用具有特定请求签名的临时凭证(在移动端计算)在S3上发送文件

  2. 使用永久凭据(AWS账户access_key_id& secret_access_key)

    1. 我的服务器直接创建请求签名(使用AWS账户access_key_id& secret_access_key)并将请求“elements / structure”(包括生成的签名,所需的标题,......)发送到移动应用
    2. 移动应用程序使用带有服务器提供的签名的“元素”在S3上发送文件
  3. 第二种解决方案更简单。但该解决方案似乎不太安全: 公开帐户access_key_id,并使用account_access_key帐户直接生成签名。 用于生成签名的摘要算法是HMAC-SHA1。它足够安全吗?

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

    感谢您的投入

1 个答案:

答案 0 :(得分:0)

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