Назад | Перейти на главную страницу

использование CloudFormation с существующей корзиной S3

Используя 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"
        }
      }
    },

Неудивительно, что в консоли CloudFormation это не работает:

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 чтобы изменить ведро: