

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Security Hub 策略语法和示例
<a name="orgs_manage_policies_security_hub_syntax"></a>

Security Hub 策略遵循标准化 JSON 语法，该语法定义了如何在组织中启用和配置 Security Hub。了解策略结构有助于您根据自己的安全需求创建有效策略。

## 注意事项
<a name="security-hub-policy-considerations"></a>

在创建 Security Hub 策略之前，请了解以下有关策略语法的关键点：
+ 策略中必须同时包含 `enable_in_regions` 和 `disable_in_regions` 列表，但这两个列表都可以为空
+ 处理有效策略时，`disable_in_regions` 优先级高于 `enable_in_regions`
+ 除非明确限制，否则子策略可以使用继承运算符修改父策略
+ `ALL_SUPPORTED` 指定包含当前区域和未来区域
+ 区域名称必须有效且在 Security Hub 中可用

## 基本策略结构
<a name="security-hub-basic-structure"></a>

Security Hub 策略使用以下基本结构：

```
{
  "securityhub": {
    "enable_in_regions": {
      "@@append": ["ALL_SUPPORTED"],
      "@@operators_allowed_for_child_policies": ["@@all"]
    },
    "disable_in_regions": {
      "@@append": [],
      "@@operators_allowed_for_child_policies": ["@@all"]
    }
  }
}
```

## 策略组件
<a name="security-hub-policy-components"></a>

Security Hub 策略包含以下关键组件：

`securityhub`  
策略设置的顶级容器  
所有 Security Hub 策略均必需

`enable_in_regions`  
应启用 Security Hub 的区域列表  
可以包含特定区域名称或 `ALL_SUPPORTED`  
必填字段，但可以为空  
使用 `ALL_SUPPORTED` 时，包含未来区域

`disable_in_regions`  
应禁用 Security Hub 的区域列表  
可以包含特定区域名称或 `ALL_SUPPORTED`  
必填字段，但可以为空  
区域同时出现在两个列表中时，优先级高于 `enable_in_regions`

继承运算符  
@@assign：覆盖继承的值  
@@append：将新值添加到现有值中  
@@remove：从继承的设置中移除特定值

## Security Hub 策略示例
<a name="security-hub-policy-examples"></a>

以下示例演示了常见的 Security Hub 策略配置。

以下示例在所有当前和未来区域中启用了 Security Hub。此策略在 `enable_in_regions` 列表中使用了 `ALL_SUPPORTED` 并将 `disable_in_regions` 留空，这样可确保在新区域可用时实现全面的安全覆盖范围。

```
{
   "securityhub":{
      "enable_in_regions":{
         "@@assign":[
            "ALL_SUPPORTED"
         ]
      },
      "disable_in_regions":{
         "@@assign":[
            
         ]
      }
   }
}
```

此示例在所有区域（包括任何未来区域）中禁用了 Security Hub，因为 `disable_in_regions` 列表优先级高于 `enable_in_regions`。

```
{
   "securityhub":{
      "enable_in_regions":{
         "@@assign":[
            "us-east-1",
            "us-west-2"
         ]
      },
      "disable_in_regions":{
         "@@assign":[
            "ALL_SUPPORTED"
         ]
      }
   }
}
```

以下示例演示了子策略如何使用继承运算符修改父策略的设置。这种方法既能实现精细控制，又能保持策略结构的整体性。子策略向 `enable_in_regions` 添加了一个新区域，并从 `disable_in_regions` 中移除了一个区域。

```
{
   "securityhub":{
      "enable_in_regions":{
         "@@append":[
            "eu-central-1"
         ]
      },
      "disable_in_regions":{
         "@@remove":[
            "us-west-2"
         ]
      }
   }
}
```

此示例说明如何在不使用 `ALL_SUPPORTED` 的情况下，在多个特定区域中启用 Security Hub。这样可以精确控制哪些区域启用了 Security Hub，同时使未指定的区域不受该策略的管理。

```
{
   "securityhub":{
      "enable_in_regions":{
         "@@assign":[
            "us-east-1",
            "us-west-2",
            "eu-west-1",
            "ap-southeast-1"
         ]
      },
      "disable_in_regions":{
         "@@assign":[
            
         ]
      }
   }
}
```

以下示例演示了如何通过在大多数区域中启用 Security Hub，同时在特定位置明确禁用 Security Hub 来满足区域合规性要求。`disable_in_regions` 列表具有优先级，确保无论其他策略设置如何，这些区域的 Security Hub 始终处于禁用状态。

```
{
   "securityhub":{
      "enable_in_regions":{
         "@@assign":[
            "ALL_SUPPORTED"
         ]
      },
      "disable_in_regions":{
         "@@assign":[
            "ap-east-1",
            "me-south-1"
         ]
      }
   }
}
```