如何编写AWS IAM策略以完全访问单个c7g.large EC2实例并限制其余实例
编写AWS IAM策略实现指定c7g.large EC2实例的完全访问权限
要实现对单个c7g.large类型EC2实例的完全访问,同时限制其他EC2实例的操作,可以通过以下IAM策略实现:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0", "Condition": { "StringEquals": { "ec2:InstanceType": "c7g.large" } } }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "c7g.large" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceTypes" ], "Resource": "*" } ] }
策略说明
- 允许指定实例的全量操作:第一个声明针对目标实例的ARN授予所有EC2操作权限,同时通过
ec2:InstanceType条件验证该实例确实是c7g.large类型,避免实例类型被修改后仍保留访问权限。 - 拒绝非目标类型实例的操作:第二个声明拒绝所有非
c7g.large类型实例的EC2操作,确保无法对其他类型实例执行任何操作。 - 允许基础描述操作:第三个声明授予全局的实例描述权限,让用户可以查看实例列表、状态及类型信息,这是日常管理中常用的基础操作。
注意事项
- 替换策略中的
us-east-1为你的AWS区域,123456789012为你的AWS账号ID,i-1234567890abcdef0为目标c7g.large实例的ID。 - 如果你不需要全局描述权限,可以删除第三个声明,但这可能导致无法查看目标实例的基础信息。
- IAM策略中
Deny会覆盖Allow,因此第二个声明的拒绝规则会优先于其他允许规则,确保非目标实例的操作被严格限制。
内容的提问来源于stack exchange,提问作者Xi12
相关产品推荐
相关产品推荐

