Похоже на создание политика ведра может помочь, но у меня возникают проблемы с созданием политики.
В Генератор политик 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. Это затрудняет опустошение и удаление ведра.