我在将应用程序打包到s3存储桶时遇到错误,我正在使用codepipeline和aws代码构建执行此行:
aws cloudformation package --template-file serverless.template --s3-bucket dev-btnext-1
--output-template-file NewSamTemplate.yaml
该命令在buildspec.yml
中指定答案 0 :(得分:1)
您的存储桶不接受任何未加密的对象,因此在存储之前打包时使用加密密钥加密数据
aws cloudformation package --template-file serverless.template --kms-key-id arn:aws:kms:us-east-1:***********:key/d91b925c-8a3b-400c-ae49-******** --s3-bucket dev-btnext-1 --output-template-file NewSamTemplate.yaml
使用您自己的KMS密钥,您将在IAM加密密钥部分找到S3的加密密钥。
如果不遵循以下步骤
,还要检查您的CodeBuild是否已访问s31.转到IAM管理控制台。
2.选择角色。
3.通常,打开为项目生成的服务角色 代码生成项目名称,服务的作用。
4.在“权限”选项卡下,选择“添加内联策略”。
5.在服务中,选择选择服务。
6.在下面选择一项服务,选择S3。
7.在“操作”中,选择“选择操作”。
8.Expand在Access级别组下写入,然后选择PutObject。
9.选择Resources,然后选择Any复选框。
10.选择评论政策。
11.输入名称*,然后选择创建策略。然后回到你的管道 在上一节中创建。