配置S3 Access Point Policy允许Web服务器访问对象遇ARN错误求助
S3访问点资源策略配置错误排查
你按照示例配置的S3资源策略无法正常运行,收到以下错误:
Ln 11, Col 16 Unsupported Resource ARN In Policy: The resource ARN is not supported for the resource-based policy attached to resource type S3 Access Point.
你的策略代码如下:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Principal": "*", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::bucketname/*"], "Condition": { "StringLike": { "aws:Referer": [ "url1", "url2" ] } } } ] }
错误原因
你把这个策略附加到了S3访问点(Access Point),但策略中使用的是S3桶对象的ARN格式,而访问点的资源ARN格式与桶的ARN格式不同,导致不兼容报错。
修正方案
需要将Resource字段中的ARN替换为S3访问点对应的对象ARN格式,格式为:arn:aws:s3:<region>:<account-id>:accesspoint/<accesspoint-name>/object/*
修改后的示例策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Principal": "*", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point/object/*"], "Condition": { "StringLike": { "aws:Referer": [ "url1", "url2" ] } } } ] }
注意替换其中的<region>(如us-east-1)、<account-id>(你的AWS账号ID)、<accesspoint-name>(你的访问点名称)为实际值。
内容的提问来源于stack exchange,提问作者ViennaMike
相关产品推荐
相关产品推荐

