导出调查结果 - 亚马逊 GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

导出调查结果

GuardDuty 支持将活动发现导出到 CloudWatch 事件,也可以导出到 Amazon S3 存储桶。生成的新有效发现将在发现结果 GuardDuty 生成后大约 5 分钟内自动导出。您可以设置将活动发现的更新导出到 CloudWatch 事件的频率。您选择的频率适用于将新出现的现有发现导出到 CloudWatch 事件、您的 S3 存储桶(如果已配置)和 Detective(如果已集成)。有关现有调查结果更新的更多信息,请参阅GuardDuty 查找聚合

请注意以下有关发现结果导出设置的注意事项:

  • 导出设置是区域性的,这意味着您需要为所使用的每个区域配置导出选项 GuardDuty。但是,您可以在单个区域中使用相同的存储桶作为您使用的每个区域的导出目的 GuardDuty 地。

  • 不会导出已存档的调查结果,包括隐藏的发现结果的新实例。如果您取消存档某个查找结果,则其状态将更新为 “活动”,并将在下一个间隔内将其导出。

  • 如果您在 GuardDuty 管理员帐户中启用查找结果导出,则在当前区域中生成的关联成员帐户的所有发现结果也将导出到您为管理员帐户配置的相同位置。

要配置将活动发现导出到 Amazon S3 存储桶的设置,您需要一个 GuardDuty 可用于加密发现的 KMS 密钥和一个具有允许 GuardDuty 上传对象的权限的 S3 存储桶。查看本主题以了解如何配置发现结果导出和频率。

配置发现结果导出所需的权限

配置导出发现结果的选项时,您可以选择存储发现结果的存储桶和用于数据加密的 KMS 密钥。除了 GuardDuty 操作权限外,您还必须具有以下操作的权限,才能成功配置导出发现结果的选项。

  • kms:ListAliases

  • s3:CreateBucket

  • s3:GetBucketLocation

  • s3:ListAllMyBuckets

  • s3:PutBucketAcl

  • s3:PutBucketPublicAccessBlock

  • s3:PutBucketPolicy

  • s3:PutObject

重要

如果你的政策明确拒绝,putObjectAcl你将无法发布调查结果。

向 KMS 密钥授予 GuardDuty 权限

GuardDuty 使用密Amazon KMS钥加密存储桶中的发现数据。要成功配置发现结果导出,必须先 GuardDuty 授予使用 KMS 密钥的权限。您可以通过更改所用密钥的密钥策略来授予权限。

如果您计划使用新密钥获取 GuardDuty 调查结果,请在继续操作之前创建密钥。如果您在另一个账户中使用密钥,则需要登录到拥有该密钥的账户才能应用密钥策略。配置导出设置时,您还需要另一个账户的密钥的密钥 ARN。

修改密钥策略 GuardDuty 以允许使用密钥
  1. 在 Amazon KMShttps://console.aws.amazon.com/kms 打开 控制台。

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的 Region selector(区域选择器)。

  3. 创建新密钥或选择计划用于加密导出的发现结果的现有密钥。密钥必须与存储段位于同一区域,但是,对于要从中导出调查结果的每个区域,您可以使用相同的存储段和key pair。

  4. 选择您的密钥,然后从常规配置面板复制密钥 ARN。

  5. 在 “密钥策略” 下,选择 “编辑”

    提示

    如果显示 “切换到策略视图”,请选择该视图以显示密钥策略,然后选择 “编辑”

  6. 将以下密钥策略添加到您的 KMS 密钥,授予对密钥的 GuardDuty 访问权限。此语句仅 GuardDuty 允许使用您更改策略的密钥。编辑密钥策略时,请确保 JSON 语法有效,如果您在最终语句之前添加语句,则必须在右括号后添加逗号。

    { "Sid": "AllowGuardDutyKey", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:Region1:444455556666:key/KMSKeyId", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012", "aws:SourceArn": "arn:aws:guardduty:Region2:123456789012:detector/SourceDetectorID" } } }
  7. 区域 1 替换为 KMS 密钥的区域。将 444455556666 替换为用于创建 KMS 密钥的Amazon账户 ID。将 KMSKeyId 替换为您选择用于加密的 KMS 密钥的密钥 ID。要识别这些值,请查看此 KMS 密钥的 ARN

    123456789012 替换为Amazon账户的 GuardDuty 账户 ID。将 Region2 替换为 GuardDuty 账户的区域。将 SourceDetectorID 替换为当前区域来源账户的 GuardDuty 检测器 ID。detectorID

    你可以在 https://console.aws.amazon.com/guardduty/ 控制台的 “设置” 页面上找到你当前区域的 detectorId,也可以使用 ListDetectorsAPI 来找到。

    注意

    如果您在手动启用的区域 GuardDuty 中使用,请将 “服务” 的值替换为该区域的区域终端节点。例如,如果您 GuardDuty 在中东(巴林)(me-south-1)区域中使用,请"Service": "guardduty.amazonaws.com"替换为"Service": "guardduty.me-south-1.amazonaws.com"

  8. 选择 Save(保存)。

  9. (可选)如果您计划使用现有存储桶,请将密钥 ARN 复制到记事本以供后续步骤使用。要查找密钥 ARN,请参阅查找密钥 ID 和 ARN

向存储桶授予 GuardDuty 权限

在您的账户或其他账户中使用预先存在的存储桶时,您必须授予向该存储桶上传对象的 GuardDuty 权限。Amazon您可以通过添加 S3 存储桶策略来授予这些权限。如果您使用的是预先存在的存储桶,请展开以下部分,了解有关添加存储桶策略的 step-by-step 说明。

添加允许上传您的存储桶对象 GuardDuty 的存储桶策略

  1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

  2. 选择您计划用于导出的调查结果的存储桶。

  3. 选择 Permissions,然后选择 Bucket Policy

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

  5. 将示例策略中的占位符值替换为适合您环境的值。

    替换myBucketName。将 [可选前缀] 替换为导出的发现结果的文件夹位置(如果该位置尚不存在,则GuardDuty 将在设置期间创建)。将区域替换为 KMS 密钥所在的区域。将 123456789012 替换 GuardDuty 为设置账户的账号。Amazon将 KMSKeyId 替换为您选择用于加密的密钥的密钥 ID,将 SourceDetectorID 替换为当前区域的源账户的 GuardDuty 检测器 ID。

示例策略

以下示例策略显示如何授予向您的 Amazon S3 存储桶发送调查结果的 GuardDuty 权限。如果在配置调查结果导出后更改路径,则必须修改策略以授予新位置的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGuardDutygetBucketLocation", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:guardduty:Region:111122223333:detector/SourceDetectorID" } } }, { "Sid": "AllowGuardDutyPutObject", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:guardduty:Region:111122223333:detector/SourceDetectorID" } } }, { "Sid": "DenyUnencryptedUploadsThis is optional", "Effect": "Deny", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }, { "Sid": "DenyIncorrectHeaderThis is optional", "Effect": "Deny", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:Region:111122223333:key/KMSKeyId" } } }, { "Sid": "DenyNon-HTTPS", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }
注意

如果您在手动启用的区域 GuardDuty 中使用,请将服务的值替换为该区域的区域终端节点。例如,如果您 GuardDuty 在中东(巴林)(me-south-1)区域中使用,请"Service": "guardduty.amazonaws.com"替换为"guardduty.me-south-1.amazonaws.com"

使用控制台将发现结果导出到存储桶

配置发现结果导出时,您可以选择现有的 S3 存储桶或 GuardDuty创建新的存储桶来存储导出的调查结果。如果您选择使用新的存储桶,则 GuardDuty 将所有必要的权限应用于创建的存储桶。如果您使用现有存储桶必须先更新存储桶策略 GuardDuty 以允许将调查结果放入存储桶中。

您也可以将发现结果导出到另一个账户中的现有存储桶。

在账户中选择新的或现有的存储桶时,您可以添加前缀。配置发现结果导出时,会在 S3 存储桶中为您的发现 GuardDuty 创建一个新文件夹。前缀将在创建的默认文件夹结构前面加上 GuardDuty,即/AWSLogs/111122223333/GuardDuty/Region

重要

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

在完成这些步骤之前,请确保您已配置 KMS 密钥,如果使用现有存储桶,则添加了 GuardDuty 允许创建对象的存储段策略。

New bucket in your account
要配置调查结果,请使用新存储桶导出
  1. 向 KMS 密钥添加用于加密发现结果的策略。 GuardDuty 策略示例,请参阅向 KMS 密钥授予 GuardDuty 权限

  2. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  3. 选择 Settings

    1. “设置” 页面的 “查找导出选项” 部分的 S3 存储桶下,选择 “立即配置”。

    2. 选择 Ne w buck et 创建一个新存储段来存储导出的调查结果。

      Name the bucket (命名存储桶) 字段中,输入存储桶的名称。此名称在所有 S3 存储桶中必须是唯一的。存储桶名称必须以小写字母或数字开头。

    3. 如果您在存储桶策略[optional prefix]中使用了,则必须在日志文件前缀下输入该前缀,否则这是可选的。当您输入值时,字段下方的示例路径将更新,以反映存储导出的发现结果的存储分区位置的路径。

    4. KMS encr yption(KMS encrytion

      • 选择 Choose key from your account (从您的账户中选择密钥)

        然后从密钥别名列表中选择您更改策略的密钥别名

      • 选择 Choose key from another account (从其他账户中选择密钥)

        然后在您更改策略的密钥中输入完整 ARN。

        您选择的密钥必须与存储桶必须是同一区域。要了解如何查找密钥 ARN,请参阅查找密钥 ID 和 ARN

    5. 选择 Save(保存)。

Existing bucket in your account
使用现有存储桶配置发现结果导出
  1. 向 KMS 密钥添加策略,该密钥 GuardDuty 将用于加密调查结果。有关策略示例,请参阅向 KMS 密钥授予 GuardDuty 权限

  2. 附加策略授予将对象上传到 S3 存储桶的 GuardDuty 权限。有关策略示例,请参阅向存储桶授予 GuardDuty 权限

  3. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  4. 选择 Settings

    1. “设置” 页面的 “查找导出选项” 部分的 S3 存储桶下,选择 “立即配置”。

    2. 在您的账户中选择现有存储桶

      存储桶的名称字段中输入存储桶的名称。

    3. 可选。在日志文件前缀下,输入要使用的路径前缀。 GuardDuty 将在存储段中创建一个具有指定前缀名称的新文件夹。当您输入值时,该字段下方的示例路径将更新,以反映存储段中导出的查找结果的路径。

    4. KMS encr yption(KMS encrytion

      • 选择 Choose key from your account (从您的账户中选择密钥)

        然后从密钥别名列表中选择您更改策略的密钥别名

      • 选择 Choose key from another account (从其他账户中选择密钥)

        然后在您更改策略的密钥中输入完整 ARN。

        您选择的密钥必须与存储桶必须是同一区域。要了解如何查找密钥 ARN,请参阅Amazon Key Management Service开发人员指南中的查找密钥 ID 和 ARN

    5. 选择 Save(保存)。

Existing bucket in another account
配置发现结果,请使用其他账户中的现有存储桶导出
  1. 向 KMS 密钥添加策略,该密钥 GuardDuty 将用于加密调查结果。有关策略示例,请参阅向 KMS 密钥授予 GuardDuty 权限

  2. 附加一项策略,授 GuardDuty 予将对象上传到另一个账户中的 S3 存储桶的权限。有关策略示例,请参阅向存储桶授予 GuardDuty 权限

    注意

    使用策略中拥有存储桶的账户的账户 ID

  3. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  4. 选择 Settings

    1. 选择另一个账户中的现有存储桶

    2. Bucket ARN field (存储桶 ARN 字段) 中,输入要使用的来自其他账户的存储桶的 ARN。

    3. KMS 加密下,输入您更改策略的密钥的完整 ARN。

      您选择的密钥必须与存储桶必须是同一区域。要了解如何查找密钥 ARN,请参阅查找密钥 ID 和 ARN

    4. 选择 Save(保存)。

导出访问错误

配置查找结果导出选项后,如果无法导出查找结果, GuardDuty 则设置页面上会显示一条错误消息。当 GuardDuty 无法再访问目标资源时,例如删除 S3 存储桶或更改存储桶的权限,就会发生这种情况。当用于加密存储桶中数据的 KMS 密钥变得无法访问时,也会发生这种情况。

导出失败时, GuardDuty 会向与账户关联的电子邮件发送通知,告知您问题。如果您未解决问题,则 GuardDuty 禁用在账户中查找导出内容。您可以随时更新配置以重新启动调查结果导出。

如果您收到此错误,请查看本主题中有关如何启用和配置发现结果导出的信息。例如,查看密钥策略并确认正确的策略应用于您选择进行加密的 KMS 密钥。

设置导出更新的有效发现的频率

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

设置频率
  1. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  2. 选择 Settings

  3. 在 “查找结果导出选项” 部分,选择 “频率” 以获取更新的调查结果。这设置了将更新的活动发现导出到 CloudWatch 事件和 Amazon S3 的频率。可从以下选项中进行选择:

    • 每 15 分钟更新 CWE 和 S3

    • 每 1 小时更新 CWE 和 S3

    • 每 6 小时更新 CWE 和 S3(默认)

  4. 选择 Save(保存)。