如何修复AWS S3存储桶策略中的无效主体错误?
S3策略「Invalid Principal」错误修复方案
问题描述
用户配置的S3桶策略(已脱敏)如下:
{ "Id": "Policy1710830593816", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1710830590440", "Action": "s3:*", "Effect": "Allow", "Resource": "arn:aws:s3:::ixxx2-station-data", "Principal": { "AWS":["arn:aws:iam::093297098997:M69-AWS-JXX-iCxxx-Developer/v_doxxx"] } } ] }
应用该策略时触发「Invalid Principal」错误,需修正策略以解决问题。
错误原因及修复步骤
错误根源:策略中
Principal字段的ARN格式不符合AWS规范。你使用的arn:aws:iam::093297098997:M69-AWS-JXX-iCxxx-Developer/v_doxxx是IAM用户的用户名路径写法,而非标准的IAM用户ARN格式,S3桶策略无法识别这种格式的主体。修复方法:
调整Principal为合法的IAM用户ARN,标准格式为arn:aws:iam::账号ID:user/用户名。针对你的场景,修正后的Principal部分应为:"Principal": { "AWS": ["arn:aws:iam::093297098997:user/v_doxxx"] }如果你实际需要授权的是整个IAM组(
M69-AWS-JXX-iCxxx-Developer),则使用组ARN格式:"Principal": { "AWS": ["arn:aws:iam::093297098997:group/M69-AWS-JXX-iCxxx-Developer"] }额外优化建议:
当前策略的Resource仅指定了桶本身(arn:aws:s3:::ixxx2-station-data),仅能授权桶级操作(如创建桶、删除桶等)。如果需要允许访问桶内对象,需补充对象级资源:"Resource": [ "arn:aws:s3:::ixxx2-station-data", "arn:aws:s3:::ixxx2-station-data/*" ]
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

