证据查找器问题排查 - AWS Audit Manager

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

证据查找器问题排查

使用此页面上的信息来解决 Audit Manager 中常见的证据查找器问题。

我无法启用证据查找器

无法启用证据查找器的常见原因包括以下情况:

您缺少权限

如果您是首次尝试启用证据查找器,请确保您拥有启用证据查找器所需的权限。这些权限允许您在 CloudTrail Lake 中创建和管理事件数据存储,这是支持证据查找器搜索查询所必需的。这些权限还允许您在证据查找器中运行搜索查询。

如果您需要权限方面的帮助,请联系您的 AWS 管理员。如果您是 AWS 管理员,则可以复制所需的权限声明并将其附加到IAM策略中

您正在使用您的 Organizations 管理账户

请记住,您不能使用管理账户启用证据查找器。请使用委托管理员账户登录,然后重试。

您之前禁用了证据查找器

当前不支持重新启用证据查找器。如果您之前禁用了证据查找器,则无法再次启用该功能。

我启用了证据查找器,但在搜索结果中看不到过去的证据

启用证据查找器后,您过去的所有证据数据最多需要 7 天才能变为可用。

在这 7 天的时间内,事件数据存储中将回填您过去两年的证据数据。这意味着,如果您在启用证据查找器后立即使用它,则在回填完成之前,部分结果不可用。

有关如何检查数据回填状态的说明,请参阅确认取证者的状态

我无法禁用证据查找器

这可能因下列原因之一导致。

您缺少权限

如果您正在尝试禁用证据查找器,请确保您具有禁用证据查找器所需的权限。这些权限允许您更新和删除 CloudTrail Lake 中的事件数据存储,这是禁用证据查找器所必需的。

如果您需要权限方面的帮助,请联系您的 AWS 管理员。如果您是 AWS 管理员,则可以复制所需的权限声明并将其附加到IAM策略中

启用证据查找器的请求仍在进行中

当您请求启用证据查找器时,我们会创建一个事件数据存储来支持证据查找器查询。创建事件数据存储时,您无法禁用证据查找器。

请等待事件数据存储创建完成,然后重试以继续。有关更多信息,请参阅 确认取证者的状态

您已经请求禁用证据查找器

当您请求禁用证据查找器时,我们会删除用于证据查找器查询的事件数据存储。如果在删除事件数据存储时再次尝试禁用证据查找器,则会收到一条错误消息。

在这种情况下,无需采取任何行动。等待删除事件数据存储。完成后,证据查找器随即禁用。有关更多信息,请参阅 确认取证者的状态

我的搜索查询失败

搜索查询失败可能因下列原因之一导致。

您缺少权限

验证用户是否具有运行搜索查询和访问搜索结果所需的权限。具体而言,您需要执行以下 CloudTrail 操作的权限:

如果您需要权限方面的帮助,请联系您的 AWS 管理员。如果您是 AWS 管理员,则可以复制所需的权限声明并将其附加到IAM策略中

您运行的查询次数已达到最大值

一次最多运行 5 次查询。如果您运行的并发查询数量达到最大值,则会导致 MaxConcurrentQueriesException 错误。如果您收到此错误消息,请等待查询完成,然后再次运行查询。

您的查询语句存在验证错误

如果您使用API或CLI来执行 CloudTrail Lake StartQuery操作,请确保您的操作queryStatement有效。查询语句存在验证错误、语法不正确或不支持关键字会导致 InvalidQueryStatementException

有关编写查询的更多信息,请参阅AWS CloudTrail 用户指南中的创建或编辑查询

有关有效语法的示例,请查看以下可用于查询 Audit Manager 事件数据存储的查询语句示例。

示例 1:调查证据及其合规状态

此示例在指定日期范围内查找账户中所有评测中处于任何合规状态的证据。

SELECT eventData.evidenceId, eventData.resourceArn, eventData.resourceComplianceCheck FROM $EDS_ID WHERE eventTime > '2022-11-02 00:00:00.000' AND eventTime < '2022-11-03 00:00:00.000'
示例 2:确定空间的不合规证据

该示例查找指定的日期范围内的所有不合规证据 (针对特定评测和控件)。

SELECT * FROM $EDS_ID WHERE eventData.assessmentId = '11aa33bb-55cc-77dd-99ee-ff22gg44hh66' AND eventTime > '2022-10-27 22:05:00.000' AND eventTime < '2022-11-03 22:05:00.000' AND eventData.resourceComplianceCheck IN ('NON_COMPLIANT','FAILED','WARNING') AND eventData.controlId IN ('aa11bb22-cc33-dd44-ee55-ff66gg77hh88')
示例 3:按姓名计算证据

此示例列出了指定日期范围内评测的全部证据,按名称分组并按证据数量排序。

SELECT eventData.eventName as eventName, COUNT(*) as totalEvidence FROM $EDS_ID WHERE eventData.assessmentId = '11aa33bb-55cc-77dd-99ee-ff22gg44hh66' AND eventTime > '2022-10-27 22:05:00.000' AND eventTime < '2022-11-03 22:05:00.000' GROUP BY eventData.eventName ORDER BY totalEvidence DESC
示例 4:按数据来源和服务了解证据

此示例查找特定数据来源和服务在指定日期范围内的所有证据。

SELECT * FROM $EDS_ID WHERE eventTime > '2022-10-27 22:05:00.000' AND eventTime < '2022-11-03 22:05:00.000' AND eventData.service IN ('dynamodb') AND eventData.dataSource IN ('AWS API calls')
示例 5:按数据来源和控制域浏览合规证据

此示例查找特定控制域的合规证据,其中证据来自不是 AWS Config 的数据源。

SELECT * FROM $EDS_ID WHERE eventData.resourceComplianceCheck IN ('PASSED','COMPLIANT') AND eventData.controlDomainName IN ('Logging and monitoring','Data security and privacy') AND eventData.dataSource NOT IN ('AWS Config')
其他API例外情况

StartQueryAPI可能由于其他几个原因而失败。有关可能的错误和描述的完整列表,请参阅AWS CloudTrail API参考文献中的StartQuery 错误

我看到控制域被标记为 “已过时”。这意味着什么?

在证据查找器中应用控制域筛选器时,您可能会注意到某些可用的控制域被描述为已过期

证据查找器中过时的控制域过滤器的屏幕截图。

自 2024 年 6 月 6 日起,Audit Manager 支持控制目录提供的一组新的 AWS 控制域。要获取这些控制域的列表,请参阅《AWS 控制目录API参考ListDomains中的。

如果控制域被标记为 “已过期”,则表示您正在查看的控制域不是控制目录提供的新 AWS 控制域之一。Audit Manager 继续支持这些过时的控制域,因此您在搜索证据时仍可以将其用作标准。

尽管我们继续支持过时的控制域,但我们建议您改用新的控制域。新的控制域映射到 2024 年 6 月 6 日作为通用控制库的一部分启动的更新的标准控件。在这一天,我们发布了更新的标准控制措施,可以从AWS 托管来源收集证据。这意味着,每当公共控制或核心控制的基础数据源有更新时,Audit Manager 都会自动将相同的更新应用于所有相关的标准控件。

我无法根据搜索结果生成多份评测报告

此错误是由同时运行太多 CloudTrail Lake 查询引起的。

如果您对搜索结果进行分组并尝试立即为分组结果中的每个行项目生成评测报告,则可能会发生此错误。当您获得搜索结果并生成评测报告时,每个操作都会调用一此查询。您一次最多只能运行 5 次查询。如果您运行的并发查询数量达到最大值,则会返回 MaxConcurrentQueriesException 错误。

为防止出现此错误,请确保不要同时生成太多评测报告。如果您运行的并发查询数量达到最大值,则会返回 MaxConcurrentQueriesException 错误。如果您收到此错误消息,请等待几分钟,等待正在进行的评测报告完成。

您可以从 Audit Manager 控制台的下载中心页面查看评测报告的状态。报告完成后,在证据查找器中返回分组结果。然后,您可以继续获取结果,并为每个行项目生成评测报告。

我无法在搜索结果中加入具体证据

您的所有搜索结果都包含在评测报告中。您不能从搜索结果集中有选择地添加行。

如果您只想在评测报告中包含特定的搜索结果,我们建议您编辑当前的搜索筛选条件。这样,您可以缩小结果范围,即仅针对要加入报告的证据。

部分证据查找器结果不包含在评测报告中

生成评测报告时,可以添加的证据数量有限。该限制取决于您的评估 AWS 区域 情况、用作评估报告目标的 S3 存储桶的区域,以及您的评估是否使用客户托管 AWS KMS key。

  1. 同区域报告的上限为 22,000 (S3 桶和评测处于同一 AWS 区域)

  2. 跨区域报告的上限为 3,500 (S3 桶和评测处于不同 AWS 区域)

  3. 如果评估使用客户托管KMS密钥,则限制为 3,500

如果您超过此限制,仍会创建报告。但是,Audit Manager 只在报告中添加了前 3,500 或 22,000 个证据项目。

为防止出现此问题,我们建议您编辑当前的搜索筛选条件。这样,您可以通过定位较少数量的证据来减少搜索结果。如果需要,您可以重复此方法并生成多份评测报告,而不是生成一个较大的报告。

我想根据搜索结果生成评测报告,但是我的查询语句不起作用

如果您使用的是CreateAssessmentReportAPI并且您的查询语句返回了验证异常,请查看下表以获取有关如何修复该异常的指导。

注意

即使查询语句在中起作用 CloudTrail,同样的查询也可能无法在 Audit Manager 中生成评估报告。这是因为这两个服务在查询验证方面存在一些差异。

子句 问题 解决方案 注意

SELECT

SELECT 子句包含列名

移除该 SELECT 子句并替换为 SELECT eventJson

仅支持 SELECT eventJson

此验证由 Audit Manager 处理。

FROM

FROM 子句包含无效的事件数据存储 ID

或者

提供的事件数据存储 ID 与 Audit Manager 设置中的事件数据存储 ID 不匹配

移除 FROM 子句并替换为 FROM edsID,其中 edsID 的值与 Audit Manager 设置中指定的事件数据存储 ID 相匹配。

您可以从 Aud ARN it Manager 设置中检索事件数据存储的。有关更多信息,请参阅 “AWS Audit Manager API参考GetSettings中的。

此验证由 Audit Manager 处理。

GROUP BY

查询中存在一个 GROUP BY 子句

移除 GROUP BY 子句。

此验证由 Audit Manager 处理。

HAVING

查询中存在一个 HAVING 子句

移除 HAVING 子句。

此验证由 Audit Manager 处理。

LIMIT

LIMIT 子句包含的值超过了允许的最大限制

如果该 LIMIT 子句存在,请确保其值等于或小于支持的最大限制:

  • 对于同区域报告,上限为 22,000

  • 对于跨区域报告,上限为 3,500

  • 对于相关评估使用客户管理 AWS KMS key的报告,上限为 3,500

在控制台中,不限制可以返回的证据结果数量。但是,在生成评测报告时,您可以包含在内的证据数量有限。

如果您的查询语句中未提供任何 LIMIT 值,则应用默认的最大限制。

此验证由 Audit Manager 处理。

ORDER BY

ORDER BY 子句包含 SELECT 子句中不存在的聚合函数别名

确保该 ORDER BY 子句不包含任何聚合函数别名条件。

此验证由处理 CloudTrail StartQuery API。

WHERE

WHERE 子句包含不止一个 assessmentId

或者

WHERE 子句包含与您 createAssessmentReport 请求中 assessmentId 不匹配的 assessmentId

或者

WHERE 子句包含不支持的列名

确保只指定了一个 assessmentId,并且它与您在请求中指定的assessmentId 参数相匹配。createAssessmentReport API

移除所有不支持的列名称。

此验证由处理 CloudTrail StartQuery API。

示例

以下示例说明在调用CreateAssessmentReport操作时如何使用queryStatement参数。在使用这些查询之前,请替换 placeholder text 用你自己的assessmentId价值观edsId和价值观。

示例 1:创建报告 (同区域限制适用)

此示例创建了一份报告,其中包含在 2022 年 1 月 22 日至 23 日之间创建的 S3 桶的结果。

SELECT eventJson FROM 12345678-abcd-1234-abcd-123456789012 WHERE eventData.assessmentId = '11aa33bb-55cc-77dd-99ee-ff22gg44hh66' AND eventTime > '2022-01-22 00:00:00.000' AND eventTime < '2022-01-23 00:00:00.000' AND eventName='CreateBucket' LIMIT 22000
示例 1:创建报告 (跨区域限制适用)

此示例创建了一个报告,其中包含指定事件数据存储和评测的所有结果,但未指定日期范围。

SELECT eventJson FROM 12345678-abcd-1234-abcd-123456789012 WHERE eventData.assessmentId = '11aa33bb-55cc-77dd-99ee-ff22gg44hh66' LIMIT 7000
示例 3:创建报告 (低于默认限制)

此示例创建了一个报告,其中包含指定事件数据存储和评测的所有结果,其限制低于默认最大值。

SELECT eventJson FROM 12345678-abcd-1234-abcd-123456789012 WHERE eventData.assessmentId = '11aa33bb-55cc-77dd-99ee-ff22gg44hh66' LIMIT 2000

其他 资源

以下页面包含有关评测报告的一般问题排查指南:

我的CSV导出失败

由于多种原因,您的CSV导出可能会失败。您可以通过检查最常见的原因进行问题排查。

首先,请确保满足使用CSV导出功能的先决条件:

您成功启用了证据查找器

如果您尚未启用证据查找器,则无法运行搜索查询和导出搜索结果。

您的事件数据存储回填已完成

如果您在启用证据查找器后立即使用它,并且证据回填仍在进行中,则部分结果可能不可用。要查看回填状态,请参阅确认取证者的状态

搜索查询成功

Audit Manager 无法导出失败查询的结果。如需失败查询进行问题排查,请参阅 我的搜索查询失败

确认满足先决条件后,请使用以下清单检查是否存在潜在问题:

  1. 检查搜索查询的状态:

    1. 查询是否已取消? 证据查找器显示取消查询之前处理的部分结果。但是,Audit Manager 不会将部分结果导出到您的 S3 桶或下载中心。

    2. 查询是否已运行超过一小时? 运行时间超过一小时的查询可能会超时。证据查找器显示查询超时之前处理的部分结果。但是,Audit Manager 不会导出部分结果。为避免超时,您可以减少扫描的证据量,编辑搜索筛选条件以指定更窄的时间范围。

  2. 检查您的导出目标 S3 存储桶URI的名称和名称:

    1. 您指定的桶是否存在? 如果您手动输入了存储桶URI,请确保没有输入任何错误。当 Audit Manager 尝试将CSV文件导出到 Amazon S3 时,拼写RESOURCE_NOT_FOUND错误或错误URI可能会导致错误。

  3. 检查您的导出目的地 S3 桶的权限:

    1. 您是否具有 S3 桶的写入权限? 您必须对用作导出目的地的 S3 桶具有写入权限。更具体地说,IAM权限策略必须包括s3:PutObject操作和存储桶ARN,并列 CloudTrail 为服务委托人。我们提供了一个策略示例以供您使用。

  4. 检查您的任何 AWS 区域 信息是否不匹配:

    1. 您的客户托管密钥是否与您的 AWS 区域 评估相符? AWS 区域 如果您提供了用于数据加密的客户受托密钥,则该密钥必须与您的评测处于相同 AWS 区域 。有关如何更改KMS密钥的说明,请参阅配置您的数据加密设置

  5. 检查您的委托管理员账户的权限:

    1. 您的 Audit Manager 设置中的客户托管密钥是否向您的托管管理员授予权限? 如果您使用的是委托管理员帐户,并且指定了用于数据加密的客户托管密钥,请确保授权的管理员有权访问该KMS密钥。有关说明,请参阅《AWS Key Management Service 开发者指南》中的允许其他账户中的用户使用KMS密钥要在 Audit Manager 中查看和更改您的加密设置,请参阅配置您的数据加密设置

注意

如果您更改了 Audit Manager 数据加密设置,则这些更改将应用于您今后创建的新评测。这包括您从新评估中导出的任何CSV文件。

这些更改不适用于您在更改加密设置之前已创建的评测。除了现有CSV出口之外,这还包括来自现有摊款的新CSV出口。现有的评估及其所有CSV出口继续使用旧密钥。KMS如果导出CSV文件的IAM身份没有使用旧KMS密钥的权限,则可以在密钥策略级别授予权限。

我无法汇出搜索结果的特定证据

您的所有搜索结果都包含在结果中。

如果您只想在CSV文件中包含具体证据,我们建议您编辑当前的搜索过滤器。这样,您可以缩小结果范围,即仅针对要导出的证据。

我无法同时导出多个CSV文件

此错误是由同时运行太多 CloudTrail Lake 查询引起的。

如果您对搜索结果进行分组并尝试立即为分组结果中的每个行项目导出一个CSV文件,则可能会发生这种情况。当您获得搜索结果并导出CSV文件时,每个操作都会调用查询。您一次最多只能运行五次查询。如果您运行的并发查询数量达到最大值,则会返回 MaxConcurrentQueriesException 错误。

为防止出现此错误,请确保不要一次导出太多CSV文件。

要解决此错误,请等待正在进行的CSV导出完成。导出一般需要几分钟时间。但是,如果您导出大量数据,则可能需要长达一个小时才能完成导出。在导出过程中,可随意离开证据查找器。

您可以从 Audit Manager 控制台的下载中心查看导出状态。文件导出后,在证据查找器中返回分组结果。然后,您可以继续获取结果并为每个行项目导出一个CSV文件。