AWS S3 IAM策略JSON解析错误排查求助
修复你的AWS IAM策略JSON错误
首先,咱们先揪出语法层面的问题——你的JSON里多了一个多余的闭合括号,直接导致了解析失败:
在"Principal"块的闭合}之后,你多写了一个},,这让JSON解析器误以为这个Statement对象已经结束了,结果后面又冒出来"Action"字段,自然就触发了语法报错。
除此之外,还有个逻辑细节要注意:如果你是要给指定IAM用户直接附加这个策略,那策略里根本不需要Principal字段。Principal是用来在S3桶策略里指定允许访问的实体的,而用户策略是直接绑定到用户身上的,不需要再额外声明主体。
修正后的用户策略(直接附加到IAM用户)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::bucketname" } ] }
如果你实际想写的是S3桶策略(直接附加到桶上)
那只需要去掉多余的括号,保证结构连贯即可,修正后的代码如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::000000:user/username" }, "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::bucketname" } ] }
你可以根据实际需求二选一:前者是给IAM用户直接添加权限,后者是给S3桶设置允许该用户访问的规则。
内容的提问来源于stack exchange,提问作者mugi
相关产品推荐
相关产品推荐

