

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

# 在多账户环境中管理自定义检测规则
<a name="custom-detection-rules-multi-account"></a>

在组织中，委派的 GuardDuty 管理员账户使用*组织配置*集中管理成员账户的自定义检测规则。管理员声明每条规则的意图，并自动将其 GuardDuty 应用于成员账户，包括稍后加入的账户。

**注意**  
Multi-account 只有通过管理的帐户才支持自定义检测规则的管理 Amazon Organizations。 Invitation-based 不支持成员账户进行集中式规则管理。

## 组织配置
<a name="custom-detection-rules-multi-account-org-configs"></a>

成员帐户无法为自己启用、禁用或更改自定义检测规则。如果您尝试从成员账户调用单账户关联操作，则会 GuardDuty 返回`AccessDeniedException`错误。管理员代表成员管理规则。有关委派管理员和成员账户的更多信息，请参阅[中的管理多个账户 GuardDuty](https://docs.amazonaws.cn/guardduty/latest/ug/guardduty_accounts.html)。

组织配置将单个规则链接到一组成员帐户。它记录规则对这些账户的运行模式，无论是实时运行还是试运行。 GuardDuty 然后在每个目标成员账户中为该规则创建一个单独的关联。您可以使用包含和排除列表为所有成员或特定帐户配置规则。

------
#### [ Console ]

**为组织配置自定义检测规则**

1. 打开 GuardDuty 控制台，网址为[https://console.aws.amazon.com/guardduty/](https://console.amazonaws.cn/guardduty/)。

1. 在导航窗格中，选择 “**自定义检测规则**”。

1. 选择规则名称以打开规则详细信息，然后选择 “**帐户**” 选项卡。

1. 选择**组织**配置**旁边的配置**。

1. 选择模式（**直播**或试**运行**），然后选择要包含或排除的帐户。

------
#### [ API/CLI ]

创建组织配置  
运行[CreateCustomDetectionRuleOrgConfiguration](https://docs.amazonaws.cn/guardduty/latest/APIReference/API_CreateCustomDetectionRuleOrgConfiguration.html)为成员账户创建规则配置。

更新组织配置  
运行[UpdateCustomDetectionRuleOrgConfiguration](https://docs.amazonaws.cn/guardduty/latest/APIReference/API_UpdateCustomDetectionRuleOrgConfiguration.html)修改模式或账户范围。

删除组织配置  
运行[DeleteCustomDetectionRuleOrgConfiguration](https://docs.amazonaws.cn/guardduty/latest/APIReference/API_DeleteCustomDetectionRuleOrgConfiguration.html)以删除组织配置。由于规则可以为每种模式保留一个配置，因此可以`mode`选择要删除的配置；另一个保持不变。

**注意**  
删除组织配置不会级联删除现有的成员账户关联。该规则在 GuardDuty 已应用该规则的成员账户中保持启用状态。

------

**注意**  
试运行组织配置将在您创建 14 天后过期。根据该配置 GuardDuty 创建的成员账户关联随之过期，而不是在每个关联创建后 14 天。

## 按照相同的规则同时运行两种模式
<a name="custom-detection-rules-multi-account-both-modes"></a>

一条规则每种模式最多只能保存一个组织配置，因此只有在以下条件下，规则才能同时在实时模式和试运行模式下运行：两种配置都必须使用明确的包含列表命名其目标帐户。

一种声称整个组织都是单枪匹马的配置。当配置根本没有指定任何帐户或指定要排除的帐户时，它会占用整个组织。另一种模式的任何配置都不能与之共存，尝试创建另一种模式会返回`ConflictException`。要将整个组织配置移至其他模式，请更新现有配置，而不是创建第二个配置。

## 示例：在试运行模式下将规则应用于所有成员账户
<a name="custom-detection-rules-multi-account-example"></a>

以下 Amazon CLI 命令创建了针对每个成员账户（包括稍后加入的账户）的组织配置。省略两者`--include-account-ids`，`--exclude-account-ids`针对整个组织。

```
aws guardduty create-custom-detection-rule-org-configuration \
    --rule-id "EXAMPLE_RULE_ID" \
    --mode DRY_RUN
```

要将规则移至实时检测，请使用更新现有配置[UpdateCustomDetectionRuleOrgConfiguration](https://docs.amazonaws.cn/guardduty/latest/APIReference/API_UpdateCustomDetectionRuleOrgConfiguration.html)。

## 在整个组织中应用每条规则
<a name="custom-detection-rules-org-all-rules"></a>

控制台一次只能配置一条规则。要将相同的模式应用于组织中的每条可用规则，请使用 Amazon CLI 循环浏览规则目录。省略两者`--include-account-ids`，将`--exclude-account-ids`目标对准每个成员账户，包括稍后加入的账户。

```
for RULE in $(aws guardduty list-custom-detection-rules \
    --query 'Rules[].RuleId' --output text); do
    aws guardduty create-custom-detection-rule-org-configuration \
        --rule-id "$RULE" \
        --mode DRY_RUN
done
```

此循环使用`--mode DRY_RUN`，因此您可以在任何规则生成结果之前测量信号音量。由于该循环没有命名任何帐户，因此每种配置都占用了整个组织，并且是其规则的一次性的。准备就绪后，使用更新现有配置，将每条规则移至实时检测[UpdateCustomDetectionRuleOrgConfiguration](https://docs.amazonaws.cn/guardduty/latest/APIReference/API_UpdateCustomDetectionRuleOrgConfiguration.html)。再次运行循环并`--mode LIVE`返回结果`ConflictException`，因为整个组织的试运行配置已经存在。