我想捕获 EC2 停止/终止事件。一旦事件被困住,我应该能够停止事件。停止事件只能从特定的 IP 地址完成。我想自动化工作流程。
我尝试使用 SNS 并注册一个 HTTP 端点。但无法停止停止事件。
我想捕获 EC2 停止/终止事件。一旦事件被困住,我应该能够停止事件。停止事件只能从特定的 IP 地址完成。我想自动化工作流程。
我尝试使用 SNS 并注册一个 HTTP 端点。但无法停止停止事件。
首先在您的实例上添加终止保护。那么你必须启用 cloud-trail 来记录 API 调用以查看施虐者失败的调用。您可以完全防止某些用户通过 IAM 终止实例。依赖IP不好。
您可以在 EC2 实例上添加终止保护。这样,您可以控制是否可以通过 CLI 或 API 删除实例。您可以添加有权调用 CLI 或 API 的 IAM 角色。
终止保护不会阻止用户从实例启动系统关闭。你可能还得看看那个。
查看文档以获取更多信息。
这些 API 操作没有挂钩。
也可以从实例内部停止实例(例如sudo halt
或sudo poweroff
),在这种情况下,EC2 将停止甚至终止实例,具体取决于实例的InstanceInitiatedShutdownBehavior
属性,该属性可以设置为停止(默认)或终止实例。实际上,设置了此选项以终止实例的实例也不受“终止保护”的影响,这是一个仅阻止通过 API(或控制台,也调用 API)终止的属性。
但是,EC2自动缩放确实具有生命周期挂钩,允许您在通过自动缩放对 EC2 API 进行调用之前拦截自动缩放的建议停止或终止。这听起来不太可能是您正在寻找的东西。
没有“陷阱”操作的能力。
相反,您应该限制有权发出停止或终止命令的人员(IAM 用户) 。
默认情况下,IAM 用户没有权限。然后他们被授予在 AWS 中执行操作的权限。如果您不希望人们使用停止命令,则不要授予他们ec2:StopInstances
权限或至少将权限限制为他们可以执行命令的有限实例集。
例如,除非实例具有特定标签,否则可能会授予停止实例的权限。