我有一个有权管理 S3(S3_User)的帐户,还有另一个有权管理 Cloud Front(Cloud_Front_User)的帐户。
现在,我已经使用 S3_User 创建了一个存储桶“bucketname”,并使用 Cloud_Front_User 创建了一个分布,其来源是我的 S3 存储桶。
当我尝试通过 Cloudfront 访问资源时,出现了以下问题
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>555667558C0B2698</RequestId>
<HostId>
QP0y2/XTsJqItm815aDsdoLTF853zMeEPUAykvxjzdFfU1WwfXHioa6CeLWmc96RDVJopBu+eLE=
</HostId>
</Error>
我已经设定了这个:http://cl.ly/image/1s0I1H3A3p1N
但是当我点击“保存”后,过了一段时间,我收到一条错误消息,说无法在 S3 存储桶上设置身份。我认为这是因为我使用“Cloud_Front_User”管理 CLoudFront,使用“S3_User”管理 S3。那么,我该如何在存储桶上手动设置 S3 策略以允许 CloudFront 访问 s3?
S3 存储桶策略
{
"Version": "2012-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": " Grant a CloudFront Origin Identity access to support private content",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E780000000000"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::socialacademy/*"
}
]
}
答案1
答案2
请参阅此解决方案..
https://havecamerawilltravel.com/photographer/how-allow-public-access-amazon-bucket
如何允许公共访问 Amazon S3 存储桶如果您尝试允许任何人下载或打开 Amazon S3 存储桶中的文件,请按以下步骤操作。
亚马逊网络服务
- 将此代码复制并粘贴到存储桶策略编辑器弹出窗口中。您需要将“YOUR-BUCKET-NAME”替换为您的完整存储桶名称。
示例政策:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}