如何修复AWS S3 Bucket Policy的Invalid Principal Format错误?
解决S3 Bucket Policy指定IAM组为Principal时的格式错误问题
问题原因
S3存储桶策略不支持直接将IAM组的ARN作为Principal,这是AWS的权限规则限制,因此会抛出"Invalid Principal Format"错误。
解决方案
有两种可行的解决方式:
方式一:指定组内的IAM用户ARN作为Principal
如果组内用户数量不多,可以直接将每个用户的ARN列在Principal中:
{ "Principal": { "AWS": [ "arn:aws:iam::1234566789:user/user1", "arn:aws:iam::1234566789:user/user2" ] }, "Sid": "writeAll", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*" ] }
方式二:给IAM组附加IAM权限策略(推荐)
放弃修改S3桶策略,转而创建IAM权限策略并附加到目标IAM组上,这种方式更符合IAM权限管理的最佳实践:
- 创建如下IAM权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*" ] } ] }
- 将该策略附加到
mygroup这个IAM组上,组内所有用户会自动获得对应的S3访问权限。
内容的提问来源于stack exchange,提问作者Boris K
相关产品推荐
相关产品推荐

