使用CloudFormation和现有的S3存储桶

使用CloudFormation,我想在现有的存储桶中设置AWS :: S3 :: Bucket中的一些属性。 换句话说,我不想创build桶,我只是想强制执行一些设置。 这里是我的云形成JSON的一个例子:

"websitePreviewBucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead", "VersioningConfiguration": { "Status": "Suspended" }, "BucketName": "preview.website.com", "WebsiteConfiguration": { "IndexDocument": "index.html", "ErrorDocument": "error.html" } } }, 

毫不奇怪,这在云端控制台中失败了:

 The following resource(s) failed to create: [websitePreviewBucket]. preview.website.com already exists 

我已经创build了bucket preview.website.com。 我的意思是,这个账户“拥有”那个桶。 我如何使用WebsiteConfiguration在现有存储桶上设置AccessControlWebsiteConfiguration类的东西?

我看到另外一个问题提出类似的问题 ,但是没有合适的答案。

我相信你错误地使用CloudFormation来修改你的AWS基础架构。 CloudFormation的目标是以模板化的方式创buildAWS基础架构。 它已经扩展到允许对其创build的资源进行一些pipe理,但是pipe理现有的基础设施不是它的目标。 从欢迎页面 :

AWS CloudFormation使您能够预测并重复地创build和部署AWS基础架构部署。

我相信最接近你将能够使用AWS :: S3 :: BucketPolicy在现有存储桶上设置存储桶策略。 除此之外,您可以使用AWS CLI S3 API来修改您的存储桶:

  • 放桶的ACL
  • 放桶,版本
  • 把桶-网站