Предотвратить остановку экземпляра AWS
Я хотел бы перехватить событие остановки / завершения EC2. Как только событие пойман в ловушку, я смогу остановить событие. Остановить событие можно только с определенного IP-адреса. Я хотел бы автоматизировать рабочий процесс.
Я попытался использовать SNS и зарегистрировать конечную точку HTTP. Но не удалось остановить событие остановки.
4 ответа
Вы можете добавить Termination Protection в свой экземпляр EC2. Таким образом, вы можете контролировать, может ли экземпляр быть или не может быть удален через CLI или API. Вы можете добавить роль IAM, у которой есть доступ для вызова CLI или API.
Защита от прерывания не мешает пользователю инициировать отключение системы от экземпляра. Возможно, вам придется взглянуть на это тоже.
Посмотрите документацию для получения дополнительной информации.
Сначала добавьте защиту от прерывания в вашем экземпляре. затем вы должны включить cloud-trail для регистрации вызовов API, чтобы увидеть неудачные вызовы пользователя. Вы можете полностью запретить определенным пользователям прекращение работы экземпляра с помощью IAM. не стоит полагаться на IP.
Нет возможности "ловить" операции.
Вместо этого вы должны ограничить количество людей (пользователей IAM), которые имеют разрешение на выполнение команд Stop или Terminate.
По умолчанию пользователи IAM не имеют разрешения. Затем они получают разрешение на выполнение операций в AWS. Если вы не хотите, чтобы люди использовали команду "Стоп", не давайте им ec2:StopInstances
разрешения или, по крайней мере, ограничить разрешения только ограниченным набором экземпляров, для которых они могут выполнить команду.
Например, может быть возможно предоставить разрешение для экземпляров Stop, если экземпляры не имеют определенного тега.
Для этих операций API нет хуков.
Экземпляр также может быть остановлен внутри экземпляра (например, sudo halt
или же sudo poweroff
), и EC2 остановит или даже прекратит работу экземпляра в этом случае, основываясь на InstanceInitiatedShutdownBehavior
атрибут, который можно установить для остановки (по умолчанию) или завершения экземпляра. Фактически, экземпляр с этой опцией, установленной для завершения экземпляра, также защищен от "защиты от прерывания", которая является атрибутом, который блокирует завершение только через API (или консоль, которая также вызывает API).
Тем не менее,автоматическое масштабирование EC2 имеет ловушки жизненного цикла, которые позволяют вам перехватывать предлагаемую остановку или завершение автоматического масштабирования до того, как вызовы API EC2 будут выполнены с помощью автоматического масштабирования. Это не похоже на то, что вы ищете.