逻辑或处于策略条件下的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条件位于每个语句之间,如果您要减小语句的大小,请尝试对相似的语句进行分组。例如,禁用同一条语句中的常见操作,或者如果您要拒绝多个区域,请将它们全部添加到同一条语句中,而不是每个都添加一个。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...