我按照这个指南在这里设置一个静态nuxtjs网站上的awss 3与cloudfront cdn。
指南的每一步都很成功。我可以从url访问我的站点的测试图像。但是,指南的最后一步获得编程访问CloudFront发行版的权限时,给我以下错误:
我已验证程序设计使用者的原则是正确的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::bucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation",
"cloudfront:GetInvalidation",
"cloudfront:ListInvalidations",
"cloudfront:UnknownOperation"
],
"Resource": "*"
}
]
}
为什么会出现AccessDenied?我甚至尝试为CloudFront/S3打开 * 操作,但仍然被拒绝。我已经验证了我的密钥/访问密钥也与策略中的编程用户匹配。
有没有什么方法可以让我得到一个更具体的错误消息,告诉我出了什么问题?
UPDATE:在gulpfile中执行以下操作之一时,可能会出现此错误:
g = g.pipe(cloudfront(config));
// create a cache file to speed up consecutive uploads
g = g.pipe(publisher.cache());
// print upload updates to console
g = g.pipe(awspublish.reporter());
我想我会梳理通过aws出版商插件寻找他们。也许指南是过时的,忘记了一个许可。
1条答案
按热度按时间hmmo2u0o1#
NuxtJS指南所依赖的创建CDN/S3的指南要求您创建一个私有桶,但他们的gulpfile中的设置是针对公共读取桶的。
若要解决此错误,您只需添加:
到你的gulpfile文件头。
编辑:我还要说的是,这篇文章依赖于另一篇文章是一个混乱的来源。另一篇文章是关于建立一个私有的bucket,其内容可以像cdn一样通过CloudFront访问。但我发现使用bucket特定的选项来托管一个静态站点(使其公开)更容易。