AWS CDK Error: bucket policy already exists on bucket
AWS CDK Error: bucket policy already exists on bucket
我正在尝试在 java 中使用 CDK 创建 lambda 和 DynamoDB。当我尝试执行 'CDK Deploy' 时,我遇到以下错误:
11:20:30 AM | CREATE_FAILED | AWS::S3::BucketPolicy | StagingBucketPolicy
The bucket policy already exists on bucket xyz-cdk-toolkit-stagingbucket-1hpv60vcdqk7s.
CDK Version: 1.48.0
此错误直接来自 CloudFormation,正如它所说,您要将策略添加到的存储桶已经有一个 现有的 。 CloudFormation 不允许 replacement/modification 个在其控制之外创建的存储桶策略。
这是一项安全措施,可防止您意外更改现有政策。
如果您想使用 CDK(或 CloudFormation)控制存储桶策略,您必须在 CDK 中重新创建它,删除原来的,然后使用 CDK 创建。
正如我在上面回复@Marcin 的回复中提到的,this 博客帮助我解决了问题。以下是我遵循的步骤:
- 已将云形成 yaml 片段复制到博客中提供的名为 s3-bucket.yml 的文件中。
- 首先使用 aws cli 命令创建此存储桶:
aws cloudformation deploy --template-file resources/s3-bucket.yml --stack-name my-bucket-stack1
- 触发此 CDK 命令以部署我的堆栈:
cdk deploy --toolkit-stack-name my-bucket-stack1
这些步骤创建了我的堆栈。
我正在尝试在 java 中使用 CDK 创建 lambda 和 DynamoDB。当我尝试执行 'CDK Deploy' 时,我遇到以下错误:
11:20:30 AM | CREATE_FAILED | AWS::S3::BucketPolicy | StagingBucketPolicy
The bucket policy already exists on bucket xyz-cdk-toolkit-stagingbucket-1hpv60vcdqk7s.
CDK Version: 1.48.0
此错误直接来自 CloudFormation,正如它所说,您要将策略添加到的存储桶已经有一个 现有的 。 CloudFormation 不允许 replacement/modification 个在其控制之外创建的存储桶策略。
这是一项安全措施,可防止您意外更改现有政策。
如果您想使用 CDK(或 CloudFormation)控制存储桶策略,您必须在 CDK 中重新创建它,删除原来的,然后使用 CDK 创建。
正如我在上面回复@Marcin 的回复中提到的,this 博客帮助我解决了问题。以下是我遵循的步骤:
- 已将云形成 yaml 片段复制到博客中提供的名为 s3-bucket.yml 的文件中。
- 首先使用 aws cli 命令创建此存储桶:
aws cloudformation deploy --template-file resources/s3-bucket.yml --stack-name my-bucket-stack1
- 触发此 CDK 命令以部署我的堆栈:
cdk deploy --toolkit-stack-name my-bucket-stack1
这些步骤创建了我的堆栈。