기존 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을 만들었습니다. 이 계정은 해당 버킷을 "소유"합니다. 어떻게 같은 것들을 설정할 수 있습니다 AccessControlWebsiteConfigurationCloudFormation와 기존 버킷에?

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

답변:


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.