Mic*_*vel 7 scp amazon-web-services amazon-iam
我想要在 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果类型是 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样,它将评估实例类型是否为 at1.micro或t2.micro,或者该区域是否us-east-1拒绝该操作。
唯一的OR条件是每个语句之间,如果您想减少语句的大小,请尝试将相似的语句分组。例如,在同一语句中禁用常见操作,或者如果您想要拒绝多个区域,请将它们全部添加到同一语句中,而不是每个语句中。
| 归档时间: |
|
| 查看次数: |
5279 次 |
| 最近记录: |