如何编写启动指定VPC内EC2实例的IAM策略?
允许启动指定VPC内EC2实例的IAM策略配置
要实现仅允许操作指定VPC内的EC2实例(启动、停止、创建),不能直接通过实例资源类型绑定VPC条件,但可以利用IAM的ec2:Vpc全局条件键来实现限制,以下是具体配置方案:
核心策略示例
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:subnet/subnet-xxxxxx", "arn:aws:ec2:*:*:security-group/sg-xxxxxx", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "StringEquals": { "ec2:Vpc": "vpc-xxxxxx" } } } ] }
关键说明
- 动作(Action):包含
ec2:StartInstances(启动)、ec2:StopInstances(停止)、ec2:RunInstances(创建),覆盖用户自行创建和启停的需求。 - 资源(Resource):
- 实例资源:
arn:aws:ec2:*:*:instance/*允许操作所有实例,但会被后续条件限制在指定VPC内。 - 额外资源:创建实例需要子网、安全组、卷等资源权限,需根据实际使用的子网/安全组ARN补充,确保用户能在目标VPC内创建实例。
- 实例资源:
- 条件(Condition):通过
ec2:Vpc条件键指定目标VPC ID(替换vpc-xxxxxx为实际ID),所有操作的实例必须属于该VPC才会被允许。
注意事项
- 如果只需要启停权限,可移除
ec2:RunInstances动作及对应的子网、安全组等资源。 - 确保补充的子网、安全组等资源都属于指定的VPC,避免用户在其他VPC内创建实例。
内容的提问来源于stack exchange,提问作者Bunny
相关产品推荐
相关产品推荐

