

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

# 将生成的 GuardDuty 调查结果导出到 Amazon S3 存储桶
<a name="guardduty_exportfindings"></a>

GuardDuty 将生成的调查结果保留 90 天。 GuardDuty 将活动调查结果导出到 Amazon EventBridge (EventBridge)。您可以选择将生成的调查发现导出到 Amazon Simple Storage Service（Amazon S3）存储桶。这将有助您跟踪账户中潜在可疑活动的历史数据，并评估建议的补救措施是否成功。

生成的任何新的活跃发现将在 GuardDuty 生成结果后大约 5 分钟内自动导出。您可以设置将活动发现的更新导出到的频率 EventBridge。您选择的频率适用于将新出现的现有发现导出到 S3 存储桶（配置后）和 Detective（集成后）。 EventBridge有关如何 GuardDuty 汇总多个出现的现有发现的信息，请参阅。[GuardDuty 查找聚合](finding-aggregation.md)

在配置设置以将调查结果导出到 Amazon S3 存储桶时， GuardDuty 使用 AWS Key Management Service (AWS KMS) 对 S3 存储桶中的调查结果数据进行加密。这要求您为 S3 存储桶和 AWS KMS 密钥添加权限，以便 GuardDuty 可以使用它们导出账户中的调查结果。

**Topics**
+ [注意事项](#guardduty-export-findings-considerations)
+ [第 1 步 – 配置调查发现导出所需的权限](#guardduty_exportfindings-permissions)
+ [第 2 步 – 将策略附加到 KMS 密钥](#guardduty-exporting-findings-kms-policy)
+ [第 3 步 – 将策略附加到 Amazon S3 存储桶](#guardduty_exportfindings-s3-policies)
+ [第 4 步 – 将调查发现导出到 S3 存储桶（控制台）](#guardduty_exportfindings-new-bucket)
+ [第 5 步 – 设置导出更新后活动调查发现的频率](#guardduty_exportfindings-frequency)

## 注意事项
<a name="guardduty-export-findings-considerations"></a>

在完成调查发现导出的先决条件并执行导出步骤之前，请注意以下关键概念：
+ **导出设置是区域性的** — 您需要在使用的每个区域中配置导出选项 GuardDuty。
+ **将调查结果导出到不同 AWS 区域 （跨区域）的 Amazon S3 存储桶** — GuardDuty 支持以下导出设置：
  + 您的 Amazon S3 存储桶或对象以及 AWS KMS 密钥必须属于同一存储桶或对象 AWS 区域。
  + 对于在商业区域中生成的调查发现，您可以选择将这些调查发现导出到任何商业区域中的 S3 存储桶。但是，您不能将这些调查发现导出到选择加入型区域中的 S3 存储桶。
  + 对于在选择加入区域生成的调查发现，您可以选择将这些调查发现导出到生成相关调查发现的同一选择加入型区域或任何商业区域。但是，您不能将调查发现从一个选择加入型区域导出到另一个选择加入型区域。
+ **导出调查结果的权限**-要配置导出活动发现的设置，您的 S3 存储桶必须具有 GuardDuty 允许上传对象的权限。您还必须拥有 GuardDuty 可用于加密发现结果的密 AWS KMS 钥。
+ **不导出存档的调查发现**：默认行为是不导出存档的调查发现，包括新出现的被抑制的调查发现。

  当 GuardDuty 查找结果生成为 “*已存档*” 时，您需要将其*取消存档*。这会将**筛选器查找状态**更改为 “**活动**”。 GuardDuty 根据您的配置[第 5 步 – 导出调查发现的频率](#guardduty_exportfindings-frequency)将更新导出到现有未存档的查找结果。
+ **GuardDuty 管理员帐户可以导出关联成员帐户中生成的**调查结果-当您在管理员帐户中配置导出结果时，在同一区域中生成的关联成员帐户的所有结果也将导出到您为管理员帐户配置的相同位置。有关更多信息，请参阅 [了解 GuardDuty 管理员账户和成员账户之间的关系](administrator_member_relationships.md)。

## 第 1 步 – 配置调查发现导出所需的权限
<a name="guardduty_exportfindings-permissions"></a>

在配置导出调查结果的设置时，您可以选择一个用于存储调查结果的 Amazon S3 存储桶和用于数据加密的 AWS KMS 密钥。除了 GuardDuty 操作权限外，您还必须拥有以下操作的权限，才能成功配置用于导出结果的设置：
+ `s3:GetBucketLocation`
+ `s3:PutObject`

如果您需要将调查发现导出到 Amazon S3 存储桶中的特定前缀，则还必须向 IAM 角色添加以下权限：
+ `s3:GetObject`
+ `s3:ListBucket`

## 第 2 步 – 将策略附加到 KMS 密钥
<a name="guardduty-exporting-findings-kms-policy"></a>

GuardDuty 使用对存储桶中的发现数据进行 AWS Key Management Service加密。要成功配置设置，必须先授予使用 KMS 密钥的 GuardDuty 权限。您可以通过将[策略附加](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)到 KMS 密钥来授予权限。

当您使用其他账户的 KMS 密钥时，您需要通过登录拥有 AWS 账户 该密钥的账户来应用密钥策略。在配置调查发现导出设置时，还需要来自拥有该密钥的账户的密钥 ARN。

**修改的 KMS 密钥策略 GuardDuty 以加密导出的结果**

1. 在 [https://console.aws.amazon.com/km AWS KMS](https://console.aws.amazon.com/kms) s 处打开控制台。

1. 要更改 AWS 区域，请使用页面右上角的区域选择器。

1. 选择一个现有 KMS 密钥或执行《AWS Key Management Service 开发人员指南》**中 [Create a new key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 部分的步骤，您将使用该密钥来加密导出的调查发现。
**注意**  
您 AWS 区域 的 KMS 密钥和 Amazon S3 存储桶的密钥必须相同。

   您可以使用相同的 S3 存储桶和 KMS 密钥对，从任何适用区域导出调查发现。有关更多信息，请参阅跨区域导出调查发现的[注意事项](#guardduty-export-findings-considerations)。

1. 在 **Key policy**（密钥策略）部分，选择 **Edit**（编辑）。

   如果显示**切换到策略视图**，请选择该选项以显示**密钥策略**，然后选择**编辑**。

1. 将以下策略块复制到您的 KMS 密钥策略中，以授予使用您的密钥的 GuardDuty权限。

   ```
   {    
       "Sid": "AllowGuardDutyKey",
       "Effect": "Allow",
       "Principal": {
           "Service": "guardduty.amazonaws.com"
       },
       "Action": "kms:GenerateDataKey",
       "Resource": "KMS key ARN",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": "123456789012",
               "aws:SourceArn": "arn:aws:guardduty:Region2:123456789012:detector/SourceDetectorID"	
           }
       }
   }
   ```

1. 通过替换策略示例**red**中格式化的以下值来编辑策略：

   1. *KMS key ARN*替换为 KMS 密钥的亚马逊资源名称 (ARN)。要查找密钥 ARN，请参阅《AWS Key Management Service 开发人员指南》中的 [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)**。

   1. 替换为*123456789012*拥有导出调查结果的 GuardDuty 账户的 AWS 账户 ID。

   1. *Region2*替换为生成 GuardDuty 结果 AWS 区域 的位置。

   1. *SourceDetectorID*替换`detectorID`为生成调查结果的特定区域的 GuardDuty 账户。

      要查找您的账户和当前区域的，请参阅[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)控制台中的**设置**页面，或运行 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html)API。`detectorId`
**注意**  
如果您在选择加入的区域 GuardDuty 中使用，请将 “服务” 的值替换为该地区的区域终端节点。例如，如果您 GuardDuty 在中东（巴林）(me-south-1) 地区使用，请替换为。`"Service": "guardduty.amazonaws.com"` `"Service": "guardduty.me-south-1.amazonaws.com"`有关每个选择加入区域的终端节点的信息，请参阅[GuardDuty 终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/guardduty.html)。

1. 如果在最后一条语句之前添加了策略语句，请在添加该语句之前添加一个逗号。确保 KMS 密钥策略的 JSON 语法有效。

   选择**保存**。

1. （可选）将密钥 ARN 复制到记事本，以便在后续步骤中使用。

## 第 3 步 – 将策略附加到 Amazon S3 存储桶
<a name="guardduty_exportfindings-s3-policies"></a>

向要将结果导出到的 Amazon S3 存储桶添加权限，以便 GuardDuty 可以将对象上传到此 S3 存储桶。无论使用属于您的账户还是其他账户的 Amazon S3 存储桶 AWS 账户，您都必须添加这些权限。

如果您在任何时候决定将调查发现导出到其他 S3 存储桶，要继续导出调查发现，则必须向该 S3 存储桶添加权限并重新配置调查发现导出设置。

如果您还没有要将这些调查发现导出到的 Amazon S3 存储桶，请参阅《Amazon S3 用户指南》中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)**。

### 将权限附加到 S3 存储桶策略
<a name="bucket-policy"></a>

1. 执行《Amazon S3 用户指南》中[创建或编辑存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)**下的步骤，直到出现**编辑存储桶策略**页面。

1. **示例策略**显示了如何授予将调查结果导出到 Amazon S3 存储桶的 GuardDuty权限。如果在配置调查发现导出后更改路径，则必须修改策略以授予对新位置的权限。

   复制以下**示例策略**并将其粘贴到**存储桶策略编辑器**中。

   如果在最后一条语句之前添加了策略语句，请在添加该语句之前添加一个逗号。确保 KMS 密钥策略的 JSON 语法有效。

   **S3 存储桶示例策略**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Allow GetBucketLocation",
               "Effect": "Allow",
               "Principal": {
                   "Service": "guardduty.amazonaws.com"
               },
               "Action": "s3:GetBucketLocation",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012",
                       "aws:SourceArn": "arn:aws:guardduty:us-east-2:123456789012:detector/SourceDetectorID"	
   
                   }
               }
           },
           {
               "Sid": "Allow PutObject",
               "Effect": "Allow",
               "Principal": {
                   "Service": "guardduty.amazonaws.com"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket[optional prefix]/*",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012",
                       "aws:SourceArn": "arn:aws:guardduty:us-east-2:123456789012:detector/SourceDetectorID"	
   
                   }
               }
           },
           {
               "Sid": "Deny unencrypted object uploads",
               "Effect": "Deny",
               "Principal": {
                   "Service": "guardduty.amazonaws.com"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket[optional prefix]/*",
               "Condition": {
                   "StringNotEquals": {
                       "s3:x-amz-server-side-encryption": "aws:kms"
                   }
               }
           },
           {
               "Sid": "Deny incorrect encryption header",
               "Effect": "Deny",
               "Principal": {
                   "Service": "guardduty.amazonaws.com"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket[optional prefix]/*",
               "Condition": {
                   "StringNotEquals": {
                   "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
                   }
               }
           },
           {
               "Sid": "Deny non-HTTPS access",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:*",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket[optional prefix]/*",
               "Condition": {
                   "Bool": {
                       "aws:SecureTransport": "false"
                   }
               }
           }
       ]
   }
   ```

------

1. 通过替换策略示例**red**中格式化的以下值来编辑策略：

   1. *Amazon S3 bucket ARN*替换为 Amazon S3 存储桶的亚马逊资源名称 (ARN)。您可以在控制台的**编辑存储桶策略页面上找到存储桶** **ARN**。[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   1. 替换为*123456789012*拥有导出调查结果的 GuardDuty 账户的 AWS 账户 ID。

   1. *us-east-2*替换为生成 GuardDuty 结果 AWS 区域 的位置。

   1. *SourceDetectorID*替换`detectorID`为生成调查结果的特定区域的 GuardDuty 账户。

      要查找您的账户和当前区域的，请参阅[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)控制台中的**设置**页面，或运行 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html)API。`detectorId`

   1. 将*[optional prefix]*部分占位*S3 bucket ARN/[optional prefix]*符值替换为要将结果导出到的可选文件夹位置。有关使用前缀的更多信息，请参阅《Amazon S3 用户指南》中的[使用前缀组织对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)**。

      当您提供尚不存在的可选文件夹位置时，仅当与 S3 存储桶关联的账户与导出结果的账户相同时，才 GuardDuty 会创建该位置。如果您将调查发现导出到属于其他账户的 S3 存储桶，则文件夹位置必须已经存在。

   1. 替换为*KMS key ARN*与导出到 S3 存储桶的结果的加密相关的 KMS 密钥的 Amazon 资源名称 (ARN)。要查找密钥 ARN，请参阅《AWS Key Management Service 开发人员指南》中的 [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)**。
**注意**  
如果您在选择加入的区域 GuardDuty 中使用，请将 “服务” 的值替换为该地区的区域终端节点。例如，如果您 GuardDuty 在中东（巴林）(me-south-1) 地区使用，请替换为。`"Service": "guardduty.amazonaws.com"` `"Service": "guardduty.me-south-1.amazonaws.com"`有关每个选择加入区域的终端节点的信息，请参阅[GuardDuty 终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/guardduty.html)。

1. 选择**保存**。

## 第 4 步 – 将调查发现导出到 S3 存储桶（控制台）
<a name="guardduty_exportfindings-new-bucket"></a>

GuardDuty 允许您将调查结果导出到另一个存储桶中的现有存储桶 AWS 账户。

创建新的 S3 存储桶时，或者选择账户中现有的存储桶时，您可以添加前缀。配置导出调查结果时，请在 S3 存储桶中为查找结果 GuardDuty 创建一个新文件夹。前缀将附加到 GuardDuty 创建的默认文件夹结构中。例如，可选前缀的格式为 `/AWSLogs/123456789012/GuardDuty/Region`。

该 S3 对象的完整路径将是 `amzn-s3-demo-bucket/prefix-name/UUID.jsonl.gz`。`UUID` 是随机生成的，不代表检测器 ID 或调查发现 ID。

**重要**  
KMS 密钥和 S3 存储桶必须位于同一区域。

在完成这些步骤之前，请确保已将相应的策略附加到您的 KMS 密钥和现有 S3 存储桶。

**配置调查发现导出**

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

1. 在导航窗格中，选择**设置**。

1. 在**设置**页面的**调查发现导出选项**下，对于 **S3 存储桶**，选择**立即配置**（或根据需要选择**编辑**）。

1. 对于 **S3 存储桶 ARN**，输入 ****bucket ARN****。要查找存储桶 ARN，请参阅《Amazon S3 用户》指南中的[查看 S3 存储桶的属性](https://docs.aws.amazon.com/AmazonS3/latest/userguide/view-bucket-properties.html)**。

1. 对于 **KMS 密钥 ARN**，请输入 ****key ARN****。要查找密钥 ARN，请参阅《AWS Key Management Service 开发人员指南》中的 [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)**。

1. 

**附加策略**
   + 执行附加 S3 存储桶策略的步骤。有关更多信息，请参阅 [第 3 步 – 将策略附加到 Amazon S3 存储桶](#guardduty_exportfindings-s3-policies)。
   + 执行附加 KMS 密钥策略的步骤。有关更多信息，请参阅 [第 2 步 – 将策略附加到 KMS 密钥](#guardduty-exporting-findings-kms-policy)。

1. 选择 **Save**。

## 第 5 步 – 设置导出更新后活动调查发现的频率
<a name="guardduty_exportfindings-frequency"></a>

根据您的环境，配置导出更新后的活动调查发现的频率。默认情况下，每 6 小时导出一次更新的调查发现。这意味着，在最近一次导出之后更新的任何调查发现都包含在下一次导出的内容中。如果每 6 小时导出一次更新的调查发现，且导出发生在 12:00，则在 12:00 后更新的任何调查发现都会在 18:00 导出。

**要设置频率**

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

1. 选择**设置**。

1. 在**调查发现导出选项**部分，选择**更新调查发现的频率**。这设置了将更新的活跃调查结果导出到 Amazon S3 EventBridge 和 Amazon S3 的频率。可从以下选项中进行选择：
   + **每 15 分钟更新 EventBridge 一次 S3**
   + **每 1 小时更新 EventBridge 一次 S3**
   + **每 6 小时更新 EventBridge 一次 S3（默认）**

1. 选择**保存更改**。