CloudFormation을 사용 하여 기존 버킷 에서 AWS :: S3 :: Bucket의 일부 속성을 설정하려고합니다 . 즉, 버킷을 생성하고 싶지 않고 일부 설정 만 적용하고 싶습니다. 다음은 cloudformation 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
버킷 preview.website.com을 만들었습니다. 이 계정은 해당 버킷을 “소유”합니다. 어떻게 같은 것들을 설정할 수 있습니다 AccessControl
및 WebsiteConfiguration
CloudFormation와 기존 버킷에?
비슷한 질문을하는 또 다른 질문을 보았지만 적절한 대답이 없습니다.
답변
CloudFormation을 사용하여 AWS 인프라를 수정하는 데 착각했다고 생각합니다. CloudFormation의 목표는 템플릿 방식으로 AWS 인프라를 생성하는 것입니다. 생성 된 리소스를 일부 관리 할 수 있도록 확장되었지만 기존 인프라 관리는 목표가 아닙니다. 로부터 시작 페이지 :
AWS CloudFormation을 사용하면 AWS 인프라 배포를 예측 가능하고 반복적으로 생성 및 프로비저닝 할 수 있습니다.
가장 가까운 방법은 AWS :: S3 :: BucketPolicy를 사용하여 기존 버킷에 버킷 정책을 설정하는 것 입니다. 그 외에도 AWS CLI S3 API 를 사용하여 버킷을 수정할 수 있습니다.