我试图仅针对EC2-classic限制c1.medium实例的启动。我的要求是:
- c1.medium无法在VPC中启动
- c1.medium只能在ec2-classic中启动
- 对其他类型的实例没有限制。
要实现此目的,我使用了ec2:InstaceType和ec2:vpc条件元素。我创建了以下策略并将其附加到用户
{
"Version": "2012-10-17","Statement": [
{
"Sid": "VisualEditor0","Effect": "Deny","action": "ec2:RunInstances","Resource": "*","Condition": {
"ArnEqualsIfExists": {
"ec2:vpc": "arn:aws:ec2:*:*:vpc/vpc-*"
},"Null":{
"ec2:vpc" : "true"
},"StringEquals": {
"ec2:InstanceType": [
"c1.medium"
]
}
}
}
]
}
附加了另一个提供用户ec2:*的策略。
以上政策应该起作用。在我看来,当在Ec2中启动实例时,ec2:vpc应该返回False,这使条件块逻辑为假。
但是我没有看到以上行为。它对vpc和Ec2-classic都具有阻止作用