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

Как предотвратить удаление сегментов S3?

Похоже на создание политика ведра может помочь, но у меня возникают проблемы с созданием политики.

В Генератор политик AWS является очень полезным инструментом для изучения и создания таких политик, его использование объясняется в соответствующих вводный пост в блоге (прямая ссылка на него доступна вместе с большинством форм ввода политики в Консоль управления AWS также).

Я создал пример в соответствии с вашей спецификацией (не забудьте, конечно, создать новый для ваших собственных ресурсов):

{
  "Id": "ExamplePolicyId12345678",
  "Statement": [
    {
      "Sid": "ExampleStmtSid12345678",
      "Action": [
        "s3:DeleteBucket"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::test-example-com",
      "Principal": {
        "AWS": [
          "*"
        ]
      }
    }
  ]
}

Обратите внимание, что Консоль управления AWS в настоящее время не скрывает команду удаления и не сообщает о том, что ее выполнение было неудачным для корзин с такими политиками, однако корзина остается на месте;)

Итак, ответ @teffen правильный, но я хотел бы сделать еще одно важное замечание. В то время как политика будет защищать от фактического удаления корзины. Это не защитит от удаления элементов в корзине. В этом есть смысл, но вы должны знать, что в консоли AWS, если вы выберете удалить корзину, она удалит все элементы в корзине, а затем не удастся удалить корзину. Таким образом, все данные, которые у вас были в корзине, исчезнут. Сначала это неочевидно и может вызвать серьезные проблемы у кого-то, если он не знает.

TL;DR; Trying to delete the bucket even with delete bucket prohibited will kill all the items in the bucket but keep the bucket around

Другой вариант - включить Управление версиями и удаление MFA. Это затрудняет опустошение и удаление ведра.