기존 S3 버킷과 함께 CloudFormation 사용


27

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및 WebsiteConfigurationCloudFormation와 기존 버킷에?

비슷한 질문을하는 또 다른 질문을 보았지만 적절한 대답이 없습니다.

답변:


7

CloudFormation을 사용하여 AWS 인프라를 수정하는 데 착각했다고 생각합니다. CloudFormation의 목표는 템플릿 방식으로 AWS 인프라를 생성하는 것입니다. 생성 된 리소스를 일부 관리 할 수 ​​있도록 확장되었지만 기존 인프라 관리는 목표가 아닙니다. 로부터 시작 페이지 :

AWS CloudFormation을 사용하면 AWS 인프라 배포를 예측 가능하고 반복적으로 생성 및 프로비저닝 할 수 있습니다.

가장 가까운 방법은 AWS :: S3 :: BucketPolicy를 사용하여 기존 버킷에 버킷 정책을 설정하는 것 입니다. 그 외에도 AWS CLI S3 API 를 사용하여 버킷을 수정할 수 있습니다.


17
그는 다른 방향에서 왔을 수도 있지만 스택을 삭제할 때 S3 버킷의 삭제 정책이 "보존"된 다음 동일한 스택을 다시 프로비저닝하면이 오류가 발생합니다. 말을 매우 귀찮게합니다. 최소한 스냅 샷 및 복원이 가능한 볼륨으로는 S3로 할 수있는 일은 없습니다.
— 슬리퍼 스미스

2
또 다른 방향은 스택의 이름을 바꾸려는 경우입니다. 이 답변은 OP가 AWS 인프라를 수정하려고한다고 가정하기 때문에 하향 투표했습니다. 이것은 CF의 다른 제한으로 인해 종종 그렇기 때문에이를 원하지 않는 것은 없습니다.
— user239558
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.