gpt4 book ai didi

amazon-web-services - 访问被拒绝 : User is not authorized to perform: cloudfront:CreateInvalidation

转载 作者:行者123 更新时间:2023-12-02 07:06:59 27 4
gpt4 key购买 nike

我正在尝试使用 ember-cli-deploy 和 ember-cli-deploy-cloudfront 将 ember 应用程序部署到 AWS CloudFront。

我在 AWS 中设置了存储桶和用户,并为我的用户提供了 AmazonS3FullAccess 策略。

将我的 .env.deploy.product 文件设置为如下所示:

AWS_KEY=<my key>
AWS_SECRET=<my secret>
PRODUCTION_BUCKET=<app.<my domain>.com
PRODUCTION_REGION=us-east-1
PRODUCTION_DISTRIBUTION=<my cloudfront distribution id>

我的config/default.js看起来像这样:

/* jshint node: true */

module.exports = function(deployTarget) {
var ENV = {
build: {},
pipeline: {
activateOnDeploy: true
},
s3: {
accessKeyId: process.env.AWS_KEY,
secretAccessKey: process.env.AWS_SECRET,
filePattern: "*"
},
cloudfront: {
accessKeyId: process.env.AWS_KEY,
secretAccessKey: process.env.AWS_SECRET
}
};

if (deployTarget === 'staging') {
ENV.build.environment = 'production';
ENV.s3.bucket = process.env.STAGING_BUCKET;
ENV.s3.region = process.env.STAGING_REGION;
ENV.cloudfront.distribution = process.env.STAGING_DISTRIBUTION;
}

if (deployTarget === 'production') {
ENV.build.environment = 'production';
ENV.s3.bucket = process.env.PRODUCTION_BUCKET;
ENV.s3.region = process.env.PRODUCTION_REGION;
ENV.cloudfront.distribution = process.env.PRODUCTION_DISTRIBUTION;
}

return ENV;
};

我安装了 ember-cli-deployember-cli-deploy-cloudfrontember install ember-cli-deploy-aws-pack >。

当我运行ember部署生产

我收到此错误:

AccessDenied:用户:arn:aws:iam::299188948670:user/Flybrary 无权执行:cloudfront:CreateInvalidation

据我了解,ember-cli-deploy-cloudfront 会为您处理创建失效,但当我看到此错误时,我进入 AWS IAM 控制台并自己创建了一个失效。当我尝试运行ember部署生产时,我仍然遇到相同的错误。

最佳答案

IAM 策略不允许限制对特定 CloudFront 分配的访问。解决方法是对资源使用通配符,而不是仅引用特定的 CloudFront 资源。将其添加到您的 IAM 策略将解决您遇到的问题。

以下是有效 IAM 策略中的示例:

{
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation",
"cloudfront:GetInvalidation",
"cloudfront:ListInvalidations"
],
"Resource": "*"
}
]
}

文档:

关于amazon-web-services - 访问被拒绝 : User is not authorized to perform: cloudfront:CreateInvalidation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com