Amazon web services 策略条件AWS中的逻辑或
我想有一个逻辑或AWS之间的政策,然后我需要附加到SCP。 其动机是添加一项适用于满足两个条件之一的政策Amazon web services 策略条件AWS中的逻辑或,amazon-web-services,amazon-iam,scp,Amazon Web Services,Amazon Iam,Scp,我想有一个逻辑或AWS之间的政策,然后我需要附加到SCP。 其动机是添加一项适用于满足两个条件之一的政策 { "sid": "OnlyT1T2Micro", "Effect": "Deny", "Action": ["ec2:RunInstances"], "Resource": ["
{
"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",
"Effect": "Deny",
"Action": ["ec2:RunInstances"],
"Resource": ["*"],
"Condition": {
"StringEquals": {
"ec2:Region": "us-east-1"
}
}
}
通过这种方式,它将评估实例类型是否为t1.micro
或t2.micro
,或者区域是否为us-east-1
,然后拒绝该操作
唯一的
或
条件是在每条语句之间,如果要减小语句的大小,请尝试将类似的语句分组。例如,禁用同一语句中的常见操作,或者如果要拒绝多个区域,请将它们全部添加到同一语句中,而不是每个语句都添加一个语句。I达到scp文本限制。因此,我想知道,在同一政策中,您是否可以同时拥有这两种产品?还是超过了政策的长度?我必须考虑政策的长度。有一个SCP策略长度限制,我还没有超过这个限制,但我去过一次,我知道我们可以达到这个限制。在有选择权的情况下尽量提前避免,但唯一的选择权在语句之间。我的建议是尝试复合类似的条件,即如果您试图禁用us-east-1中的某些服务,您将在同一声明中包含它们。如果您更改答案并添加此评论,我将批准作为可接受的答案。或者我们可以加上否定选项?