如何创建IAM策略,仅允许在启用休眠的设备上执行ec2:RunInstances?
强制启用EC2休眠模式的IAM策略条件
要实现强制用户必须启用EC2休眠模式才能启动实例,你可以通过在IAM策略中添加针对ec2:RunInstances动作的条件来限制,具体配置如下:
示例IAM策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:image/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "BoolEquals": { "ec2:HibernationOptions.Enabled": "true" } } } ] }
关键说明
- 策略通过
BoolEquals条件检查启动实例请求中的HibernationOptions.Enabled参数是否为true,只有满足该条件的请求才会被允许。 - 该策略仅强制启动时的参数设置,EC2实例本身需要满足休眠的前置要求(如支持休眠的实例类型、加密的根EBS卷、足够的内存预留等),否则即使符合策略条件,实例启动也会失败。
- 若需要给特定用户/角色开放无需休眠的实例启动权限,需单独配置不带该条件的策略。
内容的提问来源于stack exchange,提问作者allhandsofsorrow
相关产品推荐
相关产品推荐

