Cognito 组的 IAM 策略变量

Lar*_*son 10 amazon-web-services aws-cloudformation amazon-cognito

我的情况是这样的:

我正在尝试通过 AWS Cognito 使用类似 UNIX 的主目录来控制对 S3 存储桶的访问。这些主目录应该可由用户组而不是每个单独的用户访问。IE:

s3-bucket/home/group1  
s3-bucket/home/group2
s3-bucket/home/group3
Run Code Online (Sandbox Code Playgroud)

当使用组信息(当前用作通配符的目录名称的一部分)单独创建角色时,类似于此链接,它可以工作。但是,我不想为每个组创建单独的 IAM 角色。

在使用增强流程之前,我可以通过 STS 调用使用进一步的策略来限制角色assumeRoleWithWebIdentity。然而,当仅使用 cognito 时,它期望只应用一个角色。

我不想直接将策略应用于 ID 令牌的主题(例如${cognito-identity.amazonaws.com:sub}),而是希望它使用组(例如 from ${cognito-identity.amazonaws.com:cognito:groups}),这样我就不必为每个新组创建角色,并且变量其本身将有助于定义资源范围。

有人对此很幸运吗?或者通常在 IAM 资源定义中使用字符串数组/集?我试图做类似的事情

{"Fn::Select": [0, "${cognito-identity.amazonaws.com:cognito:groups}"]}

但cloudformation抱怨

Template error: Fn::Select requires a list argument with two elements: an integer index and a list

谢谢!

PS我看到这个页面,其中指出没有特定于服务的密钥用于策略中的认知,但这似乎并不正确,因为我看到人们sub aud amr在网络上其他示例的策略中使用等,尽管这是一个明确的指南似乎没有很好的记录。