从移动应用程序下载AWS S3内容的安全方式

时间:2015-05-13 14:25:42

标签: mobile amazon-web-services amazon-s3 amazon-cognito

问题陈述: 我想通过移动应用从多个移动设备下载S3内容。

我遇到的解决方案。

解决方案1 ​​

  1. 在AWS中创建IAM用户。创建仅针对特定存储桶下载S3内容的策略,并将该策略分配给IAM用户。
  2. 每当移动应用程序想要从S3下载内容时,移动应用程序将调用我的服务器API,它将返回IAM用户的凭据。
  3. 然后,移动应用程序将使用这些凭据下载S3内容。
  4. 解决方案2

    1. 使用AWS Cognito服务。
    2. 然而,第一种方法的问题是我将不得不管理凭证服务器端。此外,有人可以轻松地回溯它并在应用程序外使用这些凭据来下载内容。

      我完全不知道的第二种方法。但是,在AWS COGNITO服务的常见问题解答中,我没有找到任何解决方案,尽管它允许您阅读,删除内容并将其放入任何AWS服务。

      我需要一个关于从移动应用程序安全下载S3内容的建议。

1 个答案:

答案 0 :(得分:1)

Amazon Cognito和AWS Mobile SDK专为从移动应用程序下载存储在S3中的内容的用例而设计。您可以使用Cognito为应用的每个用户提供临时的,有限权限的AWS凭据。您可以让用户开始将您的应用作为未经身份验证的访客使用和/或使用社交登录或您自己的注册/登录服务进行身份验证。

要设置Cognito,请使用Cognito控制台创建标识池,该标识池是特定于您的AWS账户的用户标识数据的存储。 IAM角色定义用户访问AWS资源的权限,例如S3。您的应用程序的用户将承担您创建的角色。您可以为经过身份验证和未经身份验证的用户指定不同的角色。要了解有关Cognito中IAM角色的更多信息,请参阅IAM Roles

当您访问Cognito Console时,向导将指导您创建身份池和必要的IAM角色。 Cognito(向移动应用程序用户发布AWS凭证)与其他AWS服务之间的集成在SDK的初始化中。在iOS,Android,Unity和JavaScript上使用Cognito初始化SDK的示例代码位于Amazon Cognito开发人员指南的Getting Credentials topic中。

AWS Mobile SDK开发人员指南(here for Androidhere for iOS)中提供了从移动应用程序开始使用Amazon S3的分步指南。该指南将涵盖与S3相关的所有内容,包括在S3中使用存储桶策略配置必要的权限以及如何从移动应用程序上载/下载文件等。

请评论是否有任何我们可以做的事情来使这更清楚!