You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建AWS组织SCP:缺少任一必填标签时禁止EC2实例创建

AWS Organization SCP 解决EC2实例必填标签校验问题

你当前的SCP策略无法满足“任一必填标签缺失即阻止创建”的需求,原因是Condition中的Null条件默认采用逻辑AND关系——只有当Department和Name两个标签同时缺失时,才会触发Deny操作。要实现“任一缺失即阻止”的逻辑,需要使用ForAnyValue:Null条件运算符,或者用OR逻辑组合两个独立的Null判断。

正确的SCP策略代码

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyEC2CreationWithoutRequiredTags",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "ForAnyValue:Null": {
          "aws:RequestTag/Department": "true",
          "aws:RequestTag/Name": "true"
        }
      }
    }
  ]
}

策略逻辑说明

  • 使用ForAnyValue:Null运算符:只要指定的标签键中有任意一个不存在(即值为Null),就会触发Deny条件,完全符合你“任一必填标签缺失即阻止操作”的要求。
  • 资源范围保持arn:aws:ec2:*:*:instance/*,精准针对EC2实例创建操作。
  • 由于SCP仅支持Deny/Allow(你提到不能用Allow),这里通过Deny规则直接拦截不符合标签要求的创建请求,符合SCP的权限控制逻辑。

也可以用另一种写法,显式使用OR逻辑组合两个Null条件,效果完全一致:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyEC2CreationWithoutRequiredTags",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "Or": [
          {
            "Null": {
              "aws:RequestTag/Department": "true"
            }
          },
          {
            "Null": {
              "aws:RequestTag/Name": "true"
            }
          }
        ]
      }
    }
  ]
}

内容的提问来源于stack exchange,提问作者Alakananda S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:48:28