我们正在构建一个自定义应用程序(使用LoopBack),需要存储来自多个用户的许多大文件,因此我们自然而然地在查看S3。我们之前做过类似的事情,客户将文件上传到服务器,然后在一个AWS账户下处理并上传到S3,但是对于这个新应用,我们希望允许客户端(使用自定义) iOS app)使用iOS S3 SDK直接上传到自己的存储桶或文件夹。将在服务器上创建用户帐户。
有没有办法使用自定义代码处理S3身份验证/授权?例如,iOS客户端是否可以请求临时令牌,允许他们上传到特定的S3存储桶或文件夹?或者我们是否需要为系统中的每个用户创建唯一的IAM用户?
这是一个糟糕的主意吗?这听起来像个糟糕的主意。 :)
我发现了一个类似的问题here,但没有确定的答案。
更新:我发现有关临时安全凭证的this文章非常有前途。如果构建移动应用程序,它还建议使用我从未使用过的Cognito。
答案 0 :(得分:1)
Cognito是要走的路。你绝对不应该为此创建IAM用户。 IAM用于以编程方式或从控制台管理对aws服务的访问。此外,您需要在ios应用程序中对IAM访问密钥进行硬编码,这不是最佳做法。
https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html