AWS EC2 允许设置终止保护,以便用户不会意外终止实例。
我希望实现类似的保护,但针对停止操作,以避免意外关闭机器。
为什么? 我们正在转向高性能 NVMe 存储,与 EBS 卷不同,NVMe 存储无法在机器关闭后继续存在。我们显然可以设置备份和复杂的副本机制,但避免意外关闭会简单得多。
关于如何实现这一点有什么想法吗?
答案1
创建一个策略,授予用户您希望他们拥有的权限,并且仅向管理员授予“停止”权限。
通常,您会创建一个“用户”组,然后将类似下面的策略与该组关联。请注意,“notaction”表示“允许除此以外的所有操作”。此策略允许用户访问 AWS 中除停止/终止操作之外的所有内容。您可能希望排除 AWS 中的其他服务和其他一些 API 调用。
{
"Version": "2012-10-17",
"Statement": [
{
"Resource": "*",
"Effect": "Allow",
"NotAction": [
"ec2:Stop*",
"ec2:Terminate*"
],
"Sid": "BlacklistedAPICallsUser"
}
]
}
您还可以执行诸如防止标签被更改之类的操作,并设置仅允许用户停止没有单独标签的实例的条件,但您必须了解 IAM 并自行执行此操作,或者在线查找示例。
备份/复制
如果临时卷上的数据很重要,您应该将其备份到 EBS / EFS / S3 或将其镜像到另一个实例。硬件发生故障,实例可能需要维护,虽然这种情况并不经常发生,但您需要为此做好准备。