所以我只读了一半的互联网,我认为我对所有可能的事情都有很好的把握。不过,对于我的用例,我仍然有一个问题。
我的要求:我有在Cognito中管理的用户,这些用户所在的组目前只在我的应用程序中管理。我想只向组中的成员提供对S3存储桶的访问权限。
据我所知,我可以做的是在Cognito中管理这些组,向该组添加IAM角色,然后有一个设置权限的bucket策略。
根据这个文档,我可以使用${cognito-identity.amazonaws.com:sub}
来确保给定的用户只能访问S3中的这个"子文件夹"。文档是稀疏的,但除了sub
之外,显然只有aud
和amr
,它们对我的情况都没有帮助。
Web上有很多关于细粒度权限的内容,但没有关于组级别权限的内容。显然,群组是Cognito的一个新功能,但它只能用于分配IAM角色,而不能用于生态系统中的其他功能?
显然没有真正的解决方案。我们现在使用一种混合方法,使用Cognito方式允许每个用户写入权限,使用每个(自定义)组预签名的S3链接允许读取访问。通过这种方式,我们必须管理应用程序中的读取访问,但这至少比手动操作更容易。