amazon-web-services – 对一组认知身份的S3对象的访问控制

我们正在编写一个图像共享应用程序,使用Cognito进行身份管理,使用S3进行对象存储.当用户上传图像时,他们可以将图像权限设置为私人,公共或朋友,其中朋友是一组应用用户.

当它只是私有或公共时(例如使用Canned ACL),在S3对象上设置访问控制似乎很清楚.但是,目前还不清楚我们如何才能使一个对象只能被一组Cognito身份访问.

我们已经查看了标签,元数据和存储桶策略.标签和存储桶策略只是存储桶级别,我们希望它们是对象级别的.可以为单个对象设置元数据,但我认为我们不能将元数据设置为Cognito角色内的条件.有没有办法可以做到这一点?

似乎问题的关键在于我们无法创建分组的认知身份并将这些群体分配给资源.

任何帮助将不胜感激.

tl; dr我们怎样才能使S3对象只能被一组认知身份访问?

最佳答案 不幸的是,Cognito没有办法允许访问任意的,流动的id组.到目前为止,一组id可以被授予访问权限的唯一方法是
this blog中描述的内容,它要求将id硬编码到角色中:

"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1:12345678-dead-beef-cafe-123456790ab",
"cognito-identity.amazonaws.com:sub": [
        "us-east-1:12345678-1234-1234-1234-123456790ab",
        "us-east-1:98765432-1234-1234-1243-123456790ab"
] }
点赞