我試圖使用ember-cli-deploy和ember-cli-deploy-cloudfront將一個ember應用部署到AWS CloudFront。AccessDenied:用戶未被授權執行:cloudfront:CreateInvalidation
我在AWS中設置了我的存儲區和用戶,給了我的用戶AmazonS3FullAccess策略。
設置我.env.deploy.production
文件看起來像這樣:
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-deploy
,ember-cli-deploy-cloudfront
和ember install ember-cli-deploy-aws-pack
。
當我運行ember deploy production
我得到這個錯誤:
AccessDenied: User: arn:aws:iam::299188948670:user/Flybrary is not authorized to perform: cloudfront:CreateInvalidation
這是我的理解是ember-cli-deploy-cloudfront
手柄爲您創造廢票,但是當我看到這個錯誤,我走進AWS IAM控制檯和我自己創建了一個失效。當我嘗試運行ember deploy production
時,仍然收到相同的錯誤。
只是一個想法:Y您將因雲端物體無效而被起訴。也許這是您帳戶的問題? – nxrd
*「給我的用戶AmazonS3FullAccess策略。」*您是否也授予CloudFront權限? –
您好@ michael-sqlbot,我確實設置了我的雲端分佈和無效訪問,但我從來沒有提示付費(我知道它可能會自動爲我的帳戶收費?)。我很可能沒有給我的用戶雲端權限。 AWS控制檯中的任何東西似乎都不是一種明確的方式。你能爲我指出正確的方向嗎? –