如何解决逻辑或处于策略条件下的AWS
我想要一个逻辑或AWS策略,然后将其附加到SCP。 这样做的动机是添加一个在满足两个条件之一的情况下适用的政策。
{
"sid": "OnlyT1T2Micro","Effect": "Deny","Action": ["ec2:RunInstances"],"Resource": ["arn:aws:ec2:us-east-1:accountid:instance/*"],"Condition": {
"StringEquals": {
"ec2:InstanceType": ["t1.micro","t2.micro"]
},"StringEquals": {
"ec2:Region": "us-east-1"
}
}
}
在这种情况下,如果类型为t1或t2 micro之一或区域为us-east-1,我想拒绝Ec2运行实例API。 但是在此代码段中,这是条件之间的逻辑“和”,这表示该政策将在(t1.micro或t2.micro)和(us-east-1区域)(我希望添加“或”
为了将文本保存在SCP中(由于限制),我想在1个策略2条件下使用“或”一起缩小,以备不时之需
希望这个例子很清楚
解决方法
SCP可以包含多个策略,此刻,您的单个策略将需要满足所有条件(以及资源模式),然后才能拒绝。
对于每种情况,您都应创建一个单独的语句,如果要拒绝其他AWS区域中的这些实例类的访问,则也应删除资源模式。
也许下面的内容更合适。
{
"sid": "OnlyT1T2Micro","Effect": "Deny","Action": ["ec2:RunInstances"],"Resource": ["*"],"Condition": {
"StringEquals": {
"ec2:InstanceType": ["t1.micro","t2.micro"]
}
}
},{
"sid": "NotInUsEast1","Condition": {
"StringEquals": {
"ec2:Region": "us-east-1"
}
}
}
这样,它将评估实例类型是t1.micro
还是t2.micro
,或者区域是us-east-1
,然后拒绝该操作。
唯一的OR
条件位于每个语句之间,如果您要减小语句的大小,请尝试对相似的语句进行分组。例如,禁用同一条语句中的常见操作,或者如果您要拒绝多个区域,请将它们全部添加到同一条语句中,而不是每个都添加一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。