我正在尝试设置CloudFront为我的S3存储桶中托管的静态文件.我有设置分发,但我AccessDenied在尝试浏览/CSS/stlyle.cssS3存储桶中的CSS()文件时得到:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>E193C9CDF4319589</RequestId>
<HostId>
xbU85maj87/jukYihXnADjXoa4j2AMLFx7t08vtWZ9SRVmU1Ijq6ry2RDAh4G1IGPIeZG9IbFZg=
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
我已将我的CloudFront分配设置为我的S3存储桶并创建了新的Origin Access Identity policy自动添加到S3存储桶:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21XQ8NAGWMBQQ"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::myhost.com.cdn/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我希望通过CloudFront提供此S3存储桶中的所有文件...
*更新*
这个云前端指南说:
默认情况下,您的Amazon S3存储桶及其中的所有对象都是私有的 - 只有创建存储桶的AWS账户才有权读取或写入其中的对象.如果要允许任何人使用CloudFront URL访问Amazon S3存储桶中的对象,则必须授予对象的公共读取权限.(这是使用CloudFront和Amazon S3时最常见的错误之一.您必须明确授予Amazon S3存储桶中每个对象的权限.)
所以基于此我已经为S3 bucket中的所有对象添加了新的权限Everyone Read/Download.现在我可以访问文件了.
但现在当我访问这样的文件https://d3u61axijg36on.cloudfront.net/css/style.css被重定向到S3 URI和HTTP.如何禁用此功能?
我正在尝试创建aws lambda函数,但是当我单击“部署”时,出现以下错误消息:
请更正以下错误,然后重试。您的函数的执行角色必须由edgelambda.amazonaws.com服务主体承担。
我完全不知道这意味着什么。