

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

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

您可以使用自动化规则自动更新 Security Hub CSP Amazon M 中的搜索结果。提取调查发现时，Security Hub CSPM 可以应用各种规则操作，例如隐藏调查发现、更改其严重性以及添加注释。此类规则操作会修改符合您指定的条件的调查发现。

自动化规则用例的示例如下：
+ 如果调查发现的资源 ID 指的是业务关键型资源，则将调查发现的严重性提升为 `CRITICAL`。
+ 如果调查发现影响特定生产账户中的资源，则将调查发现的严重性从 `HIGH` 提升到 `CRITICAL`。
+ 分配具有 `SUPPRESSED` 工作流状态 `INFORMATIONAL` 严重性的特定调查发现。

您只能通过 Security Hub CSPM 管理员账户创建和管理自动化规则。

规则适用于新的和更新后的调查发现。您可以从头开始创建自定义规则，也可以使用 Security Hub CSPM 提供的规则模板。您也可以从模板开始创建规则，然后根据需要对其进行修改。

## 定义规则条件和规则操作
<a name="automation-rules-how-it-works"></a>

通过 Security Hub CSPM 管理员账户，您可以通过定义一个或多个规则*条件*以及一个或多个规则*操作*来创建自动化规则。当调查发现与定义的条件相匹配时，Security Hub CSPM 会对其应用规则操作。有关可用条件和操作的更多信息，请参阅 [可用的规则条件和规则操作](#automation-rules-criteria-actions)。

对于每个管理员账户，Security Hub CSPM 目前最多支持 100 条自动化规则。

Security Hub CSPM 管理员账户还可以编辑、查看和删除自动化规则。规则适用于管理员账户及其所有成员账户中的匹配调查发现。通过提供成员帐户 IDs 作为规则标准，Security Hub CSPM 管理员还可以使用自动化规则来更新或隐藏特定成员帐户中的搜索结果。

自动化规则仅适用于其创建时 Amazon Web Services 区域 所在的。要在多个区域中应用规则，管理员必须在每个区域中创建规则。这可以通过 Security Hub CSPM 控制台、Security Hub CSPM API 或 [Amazon CloudFormation](creating-resources-with-cloudformation.md) 完成。您也可以使用[多区域部署脚本](https://github.com/awslabs/aws-securityhub-multiaccount-scripts/blob/master/automation_rules)。

## 可用的规则条件和规则操作
<a name="automation-rules-criteria-actions"></a>

目前支持以下 Amazon 安全查找格式 (ASFF) 字段作为自动化规则的标准：


| 规则标准 | 筛选条件运算符 | 字段类型 | 
| --- | --- | --- | 
| AwsAccountId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| AwsAccountName  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| CompanyName  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ComplianceAssociatedStandardsId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ComplianceSecurityControlId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ComplianceStatus  | Is, Is Not  | 选择：[FAILED、NOT\$1AVAILABLE、PASSED、WARNING]  | 
| Confidence  | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal)  | 数字  | 
| CreatedAt  | Start, End, DateRange  | 日期（格式为 2022-12-01T21:47:39.269Z）  | 
| Criticality  | Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal)  | 数字  | 
| Description  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| FirstObservedAt  | Start, End, DateRange  | 日期（格式为 2022-12-01T21:47:39.269Z）  | 
| GeneratorId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| Id  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| LastObservedAt  | Start, End, DateRange  | 日期（格式为 2022-12-01T21:47:39.269Z）  | 
| NoteText  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| NoteUpdatedAt  | Start, End, DateRange  | 日期（格式为 2022-12-01T21:47:39.269Z）  | 
| NoteUpdatedBy  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ProductArn  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ProductName  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| RecordState  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| RelatedFindingsId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| RelatedFindingsProductArn  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourceApplicationArn  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourceApplicationName  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourceDetailsOther  | CONTAINS, EQUALS, NOT\$1CONTAINS, NOT\$1EQUALS  | Map  | 
| ResourceId  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourcePartition  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourceRegion  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| ResourceTags  | CONTAINS, EQUALS, NOT\$1CONTAINS, NOT\$1EQUALS  | Map  | 
| ResourceType  | Is, Is Not  | 选择（请参阅 ASFF 支持的[资源](https://docs.amazonaws.cn/securityhub/latest/userguide/asff-resources.html)）  | 
| SeverityLabel  | Is, Is Not  | 选择：[CRITICAL、HIGH、MEDIUM、LOW、INFORMATIONAL]  | 
| SourceUrl  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| Title  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| Type  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| UpdatedAt  | Start, End, DateRange  | 日期（格式为 2022-12-01T21:47:39.269Z）  | 
| UserDefinedFields  | CONTAINS, EQUALS, NOT\$1CONTAINS, NOT\$1EQUALS  | Map  | 
| VerificationState  | CONTAINS, EQUALS, PREFIX, NOT\$1CONTAINS, NOT\$1EQUALS, PREFIX\$1NOT\$1EQUALS  | 字符串  | 
| WorkflowStatus  | Is, Is Not  | 选择：[NEW、NOTIFIED、RESOLVED、SUPPRESSED]  | 

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

每个标准都支持可用于筛选匹配调查发现的最大值数。有关每个标准的限制，请参阅《Amazon Security Hub CSPM API 参考》**中的 [https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_AutomationRulesFindingFilters.html](https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_AutomationRulesFindingFilters.html)。

目前支持以下 ASFF 字段作为自动化规则的操作：
+ `Confidence`
+ `Criticality`
+ `Note`
+ `RelatedFindings`
+ `Severity`
+ `Types`
+ `UserDefinedFields`
+ `VerificationState`
+ `Workflow`

有关特定 ASFF 字段的更多信息，请参阅 [Amazon 安全调查发现格式（ASFF）语法](https://docs.amazonaws.cn/securityhub/latest/userguide/securityhub-findings-format.html)。

**提示**  
 如果您希望 Security Hub CSPM 停止为特定控件生成调查发现，我们建议您禁用该控件，而不是使用自动化规则。当您禁用某个控件时，Security Hub CSPM 会停止对其运行安全检查，并停止为其生成调查发现，因此您不会为该控件支付费用。对于符合定义条件的调查发现，我们建议使用自动化规则来更改特定 ASFF 字段的值。有关禁用控件的详细信息，请参阅 [在 Security Hub CSPM 中禁用控件](disable-controls-overview.md)。

## 自动化规则评估的调查发现
<a name="automation-rules-findings"></a>

在您创建规则*后*，自动化规则会评估 Security Hub CSPM 通过 [https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_BatchImportFindings.html](https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_BatchImportFindings.html) 操作生成或提取的新调查发现和更新的调查发现。Security Hub CSPM 每 12 至 24 小时或在关联资源状态发生变化时更新控件调查发现。有关更多信息，请参阅 [有关运行安全检查的计划](securityhub-standards-schedule.md)。

自动化规则会评估提供者提供的原始调查发现。提供者可以使用 Security Hub CSPM API 的 `BatchImportFindings` 操作来提供新的调查发现并更新现有调查发现。如果原始调查发现中不存在以下字段，Security Hub CSPM 会自动填充这些字段，然后在自动化规则的评估中使用填充的值：
+ `AwsAccountName`
+ `CompanyName`
+ `ProductName`
+ `Resource.Tags`
+ `Workflow.Status`

创建了一个或多个自动化规则后，如果您使用 [https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_BatchUpdateFindings.html](https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_BatchUpdateFindings.html) 操作更新调查发现字段，则不会触发这些规则。如果您创建的自动化规则和进行的 `BatchUpdateFindings` 更新都会影响同一个调查发现字段，则上次更新会设置该字段的值。请参见以下示例：

1. 您可以使用 `BatchUpdateFindings` 操作将调查发现 `Workflow.Status` 字段的值从 `NEW` 更改为 `NOTIFIED`。

1. 如果您调用了 `GetFindings`，则 `Workflow.Status` 字段现在的值为 `NOTIFIED`。

1. 您创建了一条自动化规则，该规则会将调查发现的 `Workflow.Status` 字段从 `NEW` 更改为 `SUPPRESSED`。（请记住，规则会忽略使用 `BatchUpdateFindings` 操作所做的更新。）

1. 调查发现提供者使用 `BatchImportFindings` 操作来更新调查发现，并将调查发现 `Workflow.Status` 字段的值更改为 `NEW`。

1. 如果您调用了 `GetFindings`，则 `Workflow.Status` 字段现在的值为 `SUPPRESSED`。这是因为应用了自动化规则，而该规则是针对调查发现采取的最后一个操作。

在 Security Hub CSPM 控制台中创建或编辑规则时，控制台会显示与规则条件匹配的调查发现的测试版。虽然自动化规则会评估调查发现提供者发送的原始调查发现，但控制台测试版会反映最终状态的调查发现，就像它们在响应 [https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_GetFindings.html](https://docs.amazonaws.cn/securityhub/1.0/APIReference/API_GetFindings.html) 操作时所显示的那样（即在对调查发现应用规则操作或其他更新之后）。

## 规则顺序的工作原理
<a name="rule-order"></a>

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

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

在 Security Hub CSPM 控制台中创建规则时，Security Hub CSPM 会根据规则的创建顺序自动分配规则顺序。最近创建的规则具有最低的规则顺序数值，因此首先适用。Security Hub CSPM 按升序应用后续规则。

当你通过 Security Hub CSPM API 创建规则时 Amazon CLI，Security Hub CSPM 会首先应用数值最低的规则。`RuleOrder`然后它按升序应用后续规则。如果多个调查发现具有相同的 `RuleOrder`，则 Security Hub CSPM 会先为 `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`

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

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