我为我的bucket设置了以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontServicePrincipalReadOnly",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name-here/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::123456789:distribution/ASDFASDFASDF"
}
}
}
]
}
这个水桶政策直接来自
AWS docs
.
我已启用CF分发,并且
SourceArn
完全匹配。但是,每次访问尝试都会拒绝访问。
我能够让CF显示S3存储桶中托管的文件的唯一方法是将存储桶设置为public并添加此策略,但这是我不想保留的安全风险:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name-here/*"
}
]
}
这里可能出了什么问题?