这是继如何使用AWS S3桶策略强制文件类型上传
应用桶策略时:
{
"Version":"2008-10-17",
"Statement": [
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": { "AWS": "arn:aws:iam::111122223333:group/admins" },
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket/*.txt"
}
]
}
组"admins"确实存在,但我得到错误:"策略中无效的主体- "AWS": "arn: AWS:iam::111122223333:group/admins"
为什么不被识别?
目前无法在Principal
中使用组。见https://forums.aws.amazon.com/message.jspa?messageID=356160
添加到yegor256答案:
不能将user group
识别为principal
中的policy
(例如基于资源的策略),因为组涉及权限, 不涉及认证,并且主体是经过认证的IAM实体。
只有在策略中才能指定以下任何主体:
- AWS帐户和根用户 <
- 我角色/gh><
- 角色会话/gh><
- 我用户/gh>
- 联合用户会话 AWS服务
来源
所以你可以这样解决这个问题:
创建一个具有任何限制或权限的IAM策略,并将此策略附加到您想要的User Group
(在您的情况下是管理员),
或者指定与组关联的IAM角色。并添加任何-限制或权限-你需要它,但确保这个角色只附加到这个组,或者你知道谁将授予权限。
则需要使用IAM角色的ARN而不是组的ARN。IAM角色的ARN如下所示:
arn:aws:iam::111122223333:role/admins