我该如何排查 AWS Config 控制台错误消息?

上次更新时间:2020 年 7 月 20 日

我的 AWS Config 控制台返回错误或未按预期运行。我如何排查 AWS Config 控制台的问题?  

简短描述

您在 AWS Config 控制台中执行操作,并收到类似于以下内容的错误消息:

  • “An error has occurred with AWS Config.请与 AWS Support 联系”
  • “We are unable to complete the request at this time.Try again later or contact AWS Support.”
  • "AWS Config is currently experiencing unusually high traffic.Try your request again or contact AWS Support."
  • "An unexpected internal error occurred with AWS Config.Try againS or contact AWS upport if the error persists"

解决方法

请针对特定 AWS Config 控制台错误消息执行以下故障排除步骤。

An error has occurred with AWS Config.请与 AWS Support 联系

如果尝试在 AWS Config 控制台上执行操作的 AWS Identity and Access Management (IAM) 实体没有必要的 IAM 权限,则会发生此错误。例如,config:PutConfigRuleiam:PassRolessm:ListDocuments 等。如果您的 AWS Config 聚合器包含重复的账户或如果 AWS Systems Manager 参数无效,也可能发生此错误。

AWS API 错误代码 CloudTrail 错误消息 相关 AWS Config API 描述 解决方法

InsufficientDeliveryPolicyException

针对 s3 存储桶 <Bucket Name> 的传输策略不足,由于 s3 键前缀为“null”,无法写入存储桶。

PutDeliveryChannel

Amazon Simple Storage Service (Amazon S3) 存储桶策略缺少写入目标存储桶的权限。

  1. 检查 Amazon S3 存储桶策略,然后确认它允许 config.amazonaws.com 服务写入到目标存储桶。
  2. 查看 IAM 实体权限,然后使用 AWS Config 完全访问策略
  3. 验证 IAM 实体有权写入到 s3:GetBucketAcls3:PutObject* 存储桶。

InvalidParameterValueException

您的配置聚合器包含重复的账户。删除重复的账户,然后重试。

PutConfigurationAggregator

您的配置聚合器包含重复的账户。

如果您添加了新的聚合器或使用相同的账户 ID 编辑了现有聚合器,请删除重复的账户,然后重试。有关更多信息,请参阅使用控制台设置聚合器
AccessDenied The user:arn:aws:sts::Example_Account_ID:assumed-role/Example_IAM_Role_Name 无权执行带显式拒绝的 config:PutConfigurationRecorder。 PutConfigurationRecorder 禁止对 AWS Config 进行配置更改的 AWS Control Tower 预防性防护已由使用服务控制策略 (SCP) 的 AWS Organizations 实施。 与您的主账户管理员验证 AWS 资源访问权限
InvalidParameterValueException

AWS 配置规则 <Config_Rule_Name> 的补救配置缺少必要的文档参数。指定所有必要的文档参数,然后重试。

PutRemediationConfigurations

必需的 Systems Manager 参数为空,或一个或多个指定的参数无效。

添加必需的 Systems Manager 参数。有关更多信息,请参阅 Systems Manager Automation 文档详细信息参考

We are unable to complete the request at this time.Try again later or contact AWS Support

如果您超出了 AWS Config 聚合限制,或者每分钟不止一次调用了 StartConfigRulesEvaluation API,则可能发生此错误。

AWS API 错误代码

CloudTrail 错误消息

相关 AWS Config API

描述

解决方法
         

LimitExceededException

“无法创建配置聚合器“<aggregator_name>”,因为账户已经包含“50”个配置聚合器。请考虑删除配置聚合器,或者联系 AWS Config 提高限额。”

PutConfigurationAggregator

此错误表示聚合器的数量超出了限制。

配置聚合器的默认上限是 50 个。您可以删除一个聚合器,或者请求提高限额。有关更多信息,请参阅 AWS Config Service Limits

 

LimitExceededException

您已超出最大请求速率。请稍后重试。

StartConfigRulesEvaluation

此错误表示您每分钟不止一次调用了 StartConfigRulesEvaluation API,或者有另一项评估正在进行中。

StartConfigRulesEvaluation API 调用限制为每分钟一次。请等待当前评估完成或等待一分钟,然后重试。

AWS Config is currently experiencing unusually high traffic.Try your request again or contact AWS support.

如果您通过 AWS Lambda 函数使用 API 调用 GetResourceConfigHistoryListDiscoveredResources,则可能发生此错误。 

AWS API 错误代码

CloudTrail 错误消息

相关 AWS Config API

描述

解决方法

ThrottlingException

超出速率

GetResourceConfigHistory

如果超出了允许的 Lambda 限制,则通过 Lambda 函数使用 API 调用 GetResourceConfigHistory 时可能导致问题。

  1. 如果您的 Lambda 函数检索到了旧的资源状态,那么请使用 earlierTime 参数,利用时间戳与 GetResourceConfigHistory API限制历史期间。
  2. 如果您的 Lambda 函数确定的是资源的当前配置,那么请考虑使用 BatchGetResourceConfig API 调用,而非 GetResourceConfigHistory

ThrottlingException

超出速率

ListDiscoveredResources

通过 Lambda 函数使用 API 调用 ListDiscoveredResources 时,如果在较短时间间隔内速率较高,超出了每个区域内的速率阈值,则可能会导致问题。

通过实施睡眠时间降低 API 调用的频率。有关更多信息,请参阅管理 AWS Lambda 函数并发

注意:除了这些最佳实践之外,您还可以实施指数退避,然后重试您的请求。

An unexpected internal error occurred with AWS Config.Try again or contact AWS Support if the error persists

如果您切换到其他 AWS 区域,或者在执行修复的过程中尝试删除修复,则可能会发生此错误。

AWS API 错误代码

CloudTrail 错误消息

相关 AWS Config API 描述

解决方法

NoSuchConfigRuleException

请求中提供的 ConfigRule“<Config rule name>”无效。请检查 configRule 名称。

GetComplianceDetailsByConfigRule

如果切换到其他 AWS 区域,而且切换后的区域中不存在该规则,则可能会在 AWS Config 规则中收到此错误。

切换回包含 AWS Config 规则的 AWS 区域。有关更多信息,请参阅选择区域

RemediationInProgressException

修复操作正在进行中。

DeleteRemediationConfiguration

在执行修复的过程中,您删除了修复。

如果您在执行修复的过程中删除了修复,那么可以通过 stop-automation-execution 命令取消执行。或者,等待片刻之后再重试。

NoSuchRemediationConfigurationException 针对规则 EXAMPLE_Config_Rule_Name 的 RemediationConfiguration 不存在。 DeleteRemediationConfiguration PutRemediationConfigurations API 调用 ResourceType 参数在创建时指定,但并未在删除时指定。 如果您在 PutRemediationConfigurations API 中使用 ResourceType 参数,则在 DeleteRemediationConfiguration API 中也必须使用 ResourceType 参数。