gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:24:38 24 4
gpt4 key购买 nike

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

我遇到的解决方案。

解决方案 1

  • 在 AWS 中创建 IAM 用户。创建一个策略以仅下载特定存储桶的 S3 内容,并将该策略分配给 IAM 用户。
  • 每当移动应用程序想要从 S3 下载内容时,移动应用程序将调用我的服务器 API,它将返回 IAM 用户的凭据。
  • 然后移动应用程序将使用这些凭据下载 S3 内容。

  • 解决方案 2
  • 使用 AWS Cognito 服务。

  • 但是,第一种方法的问题是我必须管理凭据服务器端。也有人可以轻松地回溯它并在应用程序之外使用这些凭据来下载内容。

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

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

    最佳答案

    Amazon Cognito 和 AWS 移动开发工具包专为从移动应用程序下载存储在 S3 中的内容的用例而设计。您可以使用 Cognito 向应用程序的每个用户提供临时的、有限权限的 AWS 凭证。您可以让您的用户以未经身份验证的访客身份开始使用您的应用和/或通过社交登录或您自己的注册/登录服务进行身份验证。
    要设置 Cognito,请使用 Cognito 控制台创建一个身份池,它存储特定于您的 AWS 账户的用户身份数据。 IAM 角色定义您的用户访问 AWS 资源(如 S3)的权限。您的应用程序的用户将承担您创建的角色。您可以为经过身份验证和未经身份验证的用户指定不同的角色。要了解有关 Cognito 中 IAM 角色的更多信息,请参阅 IAM Roles .
    当您访问 Cognito 控制台时,向导将指导您创建身份池和必要的 IAM 角色。 Cognito(向移动应用程序用户颁发 AWS 凭证)与其他 AWS 服务之间的集成是在 SDK 的初始化中。在 iOS、Android、Unity 和 JavaScript 上使用 Cognito 初始化 SDK 的示例代码位于 Getting Credentials topic 中。的 Amazon Cognito 开发人员指南]。
    2020 年 10 月更新:
    AWS 已将他们的“移动开发工具包”转移到 AWS Amplify。 Amplify 仍然使用 Cognito 进行身份验证(登录)和授权(凭据/权限),因此上述内容仍然准确。您可以获得有关使用 Cognito 和 Amplify 设置身份验证的具体指导here .在 Amplify 中设置身份验证后,使用 S3 的具体示例是 here .
    请注意,Cognito 的文档侧重于 用户池 这些天来,您可以实现自己的完整目录来存储和登录用户(适用于 a cost)。但是,您不必使用 Cognito 的用户目录来存储您的用户。认知 身份池 (仍然免费 AFAICT)允许您为未登录到您的应用程序的用户获取 AWS 凭证(所谓的“未经身份验证的身份”)和/或允许用户使用其他用户目录登录(例如社交登录或您拥有和管理的用户目录)。
    如果你想要最终的灵活性,你也可以使用 AWS STS to get credentials for accessing AWS Resources including S3 .然而,随着 STS 的灵活性,需要更多地了解 IAM/AWS 和可以说更复杂的设置。
    如果有什么我可以做的更清楚,请发表评论!

    关于mobile - 从移动应用程序下载 AWS S3 内容的安全方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217770/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com