我想捕获EC2停止/终止事件。一旦事件被捕获,我应该能够停止事件。停止事件只能从特定的IP地址完成。我想自动化工作流程。
我尝试使用SNS并注册了HTTP端点。但是无法停止停止事件。
答案 0 :(得分:0)
首先在您的实例上添加终止保护。 那么您必须启用cloud-trail来记录API调用,以查看滥用者失败的调用。 您可以完全阻止某些用户通过IAM终止实例。 依靠IP不好。
答案 1 :(得分:0)
您可以在您的EC2实例上添加终止保护。这样,您就可以控制实例是否可以通过CLI或API删除。您可以添加一个有权访问CLI或API的IAM角色。
Termination Protection不会阻止用户从实例启动系统关闭。您可能还需要看看。
请查看documentation,以了解更多信息。
答案 2 :(得分:0)
这些API操作没有任何钩子。
实例也可以从实例中的 中停止(例如sudo halt
或sudo poweroff
),在这种情况下,EC2将基于该实例停止或终止该实例实例的InstanceInitiatedShutdownBehavior
属性,可以将其设置为停止(默认)或终止实例。实际上,设置了该选项以终止该实例的实例也不受“终止保护”的影响,该属性仅阻止通过API(或也称为API的控制台)终止终止。
但是,EC2 自动缩放确实具有lifecycle hooks,可让您在通过自动缩放对EC2 API进行调用之前拦截自动缩放的建议停止或终止。 。这听起来似乎不是您想要的。
答案 3 :(得分:0)
没有“陷阱”操作的能力。
相反,您应该限制有权发出“停止”或“终止”命令的人员(IAM用户)。
默认情况下,IAM用户没有权限。然后,他们被授予在AWS中执行操作的权限。如果您不希望人们使用“停止”命令,则不要给他们ec2:StopInstances
权限,或者至少不将其权限限制为只能在他们可以执行该命令的一组有限实例上进行。
例如,有可能授予停止实例的权限,除非实例具有特定标签。