我有一台服务器,它应该为客户端提供临时AWS凭证。凭证将使用HTTPS传输。
客户端应该能够上传S3文件,并下载它们。我担心的是:
我有多个用户只访问他们自己的目录:/Users/someUser/myfile.png
您可以将策略设置为允许或拒绝S3,但您不能仅授予对特定路径的访问权限。
我该怎么办? HTTPS传输是否足够?
然后是我的第二个问题。 如果我听到“临时凭证”,我会记住一个密钥,这个密钥有效几个小时然后到期。但我不确定IAM是否真的是为此而建的。 我应该为所有用户提供相同的凭据吗? 或者我为每个客户生成一个密钥对?
服务器使用PHP运行,客户端使用Objective-C。
答案 0 :(得分:7)
您可以在Amazon S3中指定路径的权限。有关更多详细信息,请参阅以下内容:
此外,如果您要创建“临时凭证”,则可以使用AWS Security Token Service。此服务允许您创建持续1到36小时的凭据,并且您可以对这些凭据设置策略以限制其访问。有关该服务的更多详细信息,请参阅:
Security Token Service API Reference
最后,有一篇为AWS Mobile SDK编写的文章,它做了类似的事情。它有一个服务器,可以向使用Amazon S3存储桶的用户颁发临时凭证。它将用户限制为存储桶的“子文件夹”,并限制其操作。您可以在此处阅读此示例:
Credential Management for Mobile Applications
希望这可以帮助您获得所需的信息。