

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

# Security Hub 中的自动化规则
<a name="securityhub-v2-automation-rules"></a>

 借助 Security Hub，您可以自动执行诸如更新调查发现详细信息和为第三方集成创建票证之类的任务。

## 自动化规则和 AWS 区域
<a name="automation-regions"></a>

 自动化规则可以合而为一， AWS 区域 然后应用于所有已配置的规则 AWS 区域。使用区域聚合时，您只能在主区域中创建规则。在主区域创建规则时，除非规则条件排除特定的关联区域，否则您定义的任何规则都将应用于所有关联区域。对于任何非关联区域，您必须创建自动化规则。

## 规则操作和条件
<a name="ocsf-fields"></a>

 Security Hub 中的自动化规则使用条件来引用 Security Hub 调查发现中的 OCSF 属性。例如，[https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_CreateAutomationRuleV2.html](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_CreateAutomationRuleV2.html) 中的 `Criteria` 参数支持的筛选条件与 [https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_GetFindingsV2.html](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_GetFindingsV2.html) 中的 `Criteria` 参数支持的筛选条件相匹配。这意味着可以使用自动化规则中的筛选条件来获取调查发现。Security Hub 支持以下 OCSF 字段作为自动化规则条件。


| OCSF 字段 | 控制台筛选条件值 | 筛选条件运算符 | 字段类型 | 
| --- | --- | --- | --- | 
| activity\_name | Activity name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| class\_name | Finding class name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| cloud.account.uid | Account ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| cloud.provider | Cloud provider | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| cloud.region | Region | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| comment | Comment | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| compliance.assessments.category | Assessment category | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| compliance.assessments.name | Assessment name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| compliance.control | Security control ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| compliance.standards | Applicable standards | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| compliance.status | Compliance status | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.desc | Finding description | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.related\_events.product.uid | Related findings product ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.related\_events.title | Related findings title | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.related\_events.uid | Related findings ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.src\_url | Source URL | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.types | Finding type | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.uid | Provider ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| metadata.product.feature.uid | Generator ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| metadata.product.name | Product name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| metadata.product.uid | Product ARN | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| metadata.product.vendor\_name | Company name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| metadata.uid | Finding ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| remediation.desc | Recommendation text | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| remediation.references | Recommendation URL | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| resources.cloud\_partition | Resource partition | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| resources.name | Resource name | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| resources.region | Resource region | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| resources.type | Resource type | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| resources.uid | Resource ID | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| severity | Severity | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| status | Status | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| vulnerabilities.fix\_coverage | Software vulnerabilities coverage | EQUALS, PREFIX, NOT\_CONTAINS, NOT\_EQUALS, PREFIX\_NOT\_EQUALS | String | 
| finding\_info.first\_seen\_time\_dt | First observed at | Start, End, DateRange | Date (formatted as 2022-12-01T21:47:39.269Z) | 
| finding\_info.last\_seen\_time\_dt | Last observed at | Start, End, DateRange | Date (formatted as 2022-12-01T21:47:39.269Z) | 
| finding\_info.modified\_time\_dt | Updated at | Start, End, DateRange | Date (formatted as 2022-12-01T21:47:39.269Z) | 
| compliance.assessments.meets\_criteria | Compliance assessment meets criteria | True, False | Boolean | 
| vulnerabilities.is\_exploit\_available | Software vulnerabilities with exploit available | True, False | Boolean | 
| vulnerabilities.is\_fix\_available | Software vulnerabilities with fix available | True, False | Boolean | 
| activity\_id | Activity ID | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| compliance.status\_id | Compliance status ID | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| confidence\_score | Confidence | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| severity\_id | Severity ID | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| status\_id | Status ID | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| finding\_info.related\_events\_count | Related findings count | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) | Number | 
| resources.tags | Resource tags | EQUALS | Map | 

 对于标记为字符串字段的条件，在同一字段上使用不同的筛选运算符会影响评估逻辑。有关更多信息，请参阅 Sec *urity Hub API 参考[StringFilter](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_StringFilter.html)*中的。

 每个标准都支持可用于筛选匹配调查发现的最大值数。有关每个标准的限制，请参阅 Sec *urity Hub API 参考[OcsfFindingFilters](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_OcsfFindingFilters.html)*中的 

**可以更新的 OCSF 字段**  
 以下是可以使用自动化规则更新的 OCSF 字段。
+  `Comment` 
+  `SeverityId` 
+  `StatusId` 

## 自动化规则如何评估调查发现
<a name="findings-evaluate"></a>

 自动化规则会评估 Security Hub 在您创建规则后生成或提取的新的和更新后的调查发现。

 自动化规则会评估提供者提供的原始调查发现。提供者可以通过与 Security Hub 的集成来提供新的调查发现并更新现有调查发现。通过 `BatchUpdateFindingsV2` 操作创建规则后，更新调查发现字段不会触发规则。如果您创建的自动化规则和进行的 `BatchUpdateFindingsV2` 更新都会影响同一个调查发现字段，则上次更新会设置该字段的值。请参见以下示例：

 您可以使用 `BatchUpdateFindingsV2` 将调查发现的 `Status` 字段从 `New` 更新为 `In Process`。如果您调用了 `GetFindingsV2`，则 `Status` 字段现在的值为 `In Process`。您创建了一条自动化规则，该规则会将调查发现的 `Status` 字段从 `New` 更改为 `Suppressed`（请注意，规则会忽略使用 `BatchUpdateFindingsV2` 进行的更新）。调查发现提供者会更新调查发现，并将 `Status` 字段更改为 `New`。如果您调用了 `GetFindingsV2`，则 `Status` 字段现在的值为 `Suppressed`，因为应用了自动化规则，而该规则是对调查发现执行的最后一个操作。

 在 Security Hub 控制台中创建或编辑规则时，控制台会显示符合规则条件的调查发现的预览。虽然自动化规则会评估调查发现提供者发送的原始调查发现，但控制台预览会反映最终状态的调查发现，就像它们在响应 `GetFindingsV2` API 操作时所显示的那样（即在对调查发现应用规则操作或其他更新之后）。

## 自动化规则如何排序
<a name="automation-rule-order"></a>

 每条自动化规则都分配了规则顺序。这决定了 Security Hub 应用您的自动化规则的顺序，当多个规则与同一个调查发现或调查发现字段相关时，这变得非常重要。

 当多个规则操作与同一个调查发现或调查发现字段相关时，规则顺序数值最高的规则将应用于最后并产生最终效果。

 在 Security Hub 控制台中创建规则时，Security Hub 会根据规则的创建顺序自动分配规则顺序。您创建的第一条规则的规则顺序为 1。当存在多条规则时，后续创建的每条规则都将具有下一个可用的最高数值作为规则顺序值。

 当您通过 [https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_CreateAutomationRuleV2.html](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_CreateAutomationRuleV2.html)API 或创建规则时 AWS CLI，Security Hub 会`RuleOrder`首先应用数值最低的规则。然后它按升序应用后续规则。如果多个调查发现具有相同的 `RuleOrder`，则 Security Hub 会先为 `UpdatedAt` 字段应用具有较早值的规则（也就是说，最近编辑的规则应用在最后）。

 您可以随时修改规则顺序。

 **规则顺序示例**：

 **规则 A（规则顺序为 `1`）**：
+ 规则 A 条件
  + `ProductName` = `Security Hub CSPM`
  + `Resources.Type` 是 `S3 Bucket`
  + `Compliance.Status` = `FAILED`
  + `RecordState` 是 `NEW`
  + `Workflow.Status` = `ACTIVE`
+ 规则 A 操作
  + `Confidence` 更新为 `95`
  + `Severity` 更新为 `CRITICAL`
  + `Comment` 更新为 `This needs attention`

 **规则 B（规则顺序为 `2`）**：
+ 规则 B 条件
  + `AwsAccountId` = `123456789012`
+ 规则 B 操作
  + `Severity` 更新为 `INFORMATIONAL`

 首先，规则 A 操作应用于符合规则 A 条件的 Security Hub 调查发现。然后，规则 B 操作应用于具有指定账户 ID 的 Security Hub 调查发现。在此示例中，由于规则 B 最后适用，因此调查发现中来自指定账户 ID 的 `Severity` 的最终值为 `INFORMATIONAL`。根据规则 A 操作，在匹配调查发现中 `Confidence` 的最终值为 `95`。

## 第三方集成
<a name="integrations"></a>

 您可以使用自动化规则来为与 Jira Cloud 和 ServiceNow ITSM 的集成创建票证。有关更多信息，请参阅[创建用于第三方集成的规则](https://docs.aws.amazon.com/securityhub/latest/userguide/securithub-v2-automation-rules-create.html#integration)。

## 自动化规则无法正常工作的场景
<a name="scenarios"></a>

 以下是自动化规则无法正常工作的场景。
+  独立账户成为具有委派管理员的组织的成员 
+  组织管理账户移除委派管理员并设置新的委派管理员 
+  当未关联的区域变为关联区域时，委派管理员账户或独立账户的聚合器配置会发生变化 

 在这些场景中，组织成员可以在 AWS CLI 或中通过列出、获取和删除操作来管理自动化规则 APIs。

 当未关联的区域变为关联区域时，委派管理员或独立账户可以通过列出、获取和删除操作来管理关联区域中的资源。