使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何对 AWS Config 中失败的修复操作进行故障排除?

2 分钟阅读
0

我按照说明使用 AWS Config 规则修复不合规的 AWS 资源。但是,修复操作失败,提示错误:“Action execution failed (details)”。我查看了错误详情,但没有足够的信息来排查这个问题。

解决方法

按照以下说明使用 AWS 命令行界面(AWS CLI)或 AWS CloudTrail 事件历史记录对修复操作失败进行故障排除。

注意: 如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI

AWS CLI

要查找与失败的修复操作相关的错误信息,请在 AWS CLI 中完成以下步骤:

  1. 要获得更详细的错误消息、状态信息和修复操作步骤的时间戳,请运行 describe-remediation-execution-status AWS CLI 命令
    请参阅以下示例:

    aws configservice describe-remediation-execution-status \
      --config-rule-name example-rule \
      --region example-region \
      --resource-keys resourceType=example-resource-type,resourceId=example-resource-ID

    注意:对于您的命令,将example-ruleexample-regionexample-resource-typeexample-resource-ID 替换为您的 AWS Config 规则名称、AWS 区域、资源类型和资源 ID 。

  2. 查看您的命令输出。
    请参阅以下示例:

    {
      "RemediationExecutionStatuses": [
        {
          "InvocationTime": 1560680582.419,
          "LastUpdatedTime": 1560680583.67,
          "ResourceKey": {
            "resourceId": "vol-0b399a24561582586",
            "resourceType": "AWS::EC2::Volume"
          },
          "State": "FAILED",
          "StepDetails": [
            {
              "ErrorMessage": "Automation Step Execution fails when it is creating a CloudFormation stack.
    Get Exception from CreateStack API of cloudformation Service. Exception Message from CreateStack API:
    [User: arn:aws:sts::xxxxx:assumed-role/config-remediation-sshpublic-role-zkga0ot3/config-remediation-sshpublic is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:eu-west-2:xxxxx:stack/DetachEBSVolumeStack2f6d3590-ea2c-424a-97ea-045749f07164/*
    (Service: AmazonCloudFormation; Status Code: 403; Error Code: AccessDenied; Request ID: b8f41dd6-9020-11e9-897d-f9719db1a9e6)].
    Please refer to Automation Service Troubleshooting Guide for more diagnosis details.",
              "Name": "createDocumentStack",
              "StartTime": 1560680582.675,
              "State": "FAILED",
              "StopTime": 1560680582.884
            },  
            {
              "Name": "detachVolume",
              "State": "PENDING"
            },
            {  
              "Name": "deleteCloudFormationTemplate",
              "State": "PENDING"
            }
          ]
        }
      ]
    }
  3. StepDetails列表中,查看错误消息信息。
    **注意:**错误中的时间戳采用纪元时间格式。要将时间戳转换为世界标准时间,请使用免费的在线转换器,例如 EpochConverter

CloudTrail 事件历史记录

要查找与失败的修复操作相关的错误信息,请在 CloudTrail 和 AWS Systems Manager 控制台中完成以下步骤:

  1. 打开 CloudTrail 控制台
  2. 按照使用 CloudTrail 控制台查看最近的 CloudTrail 管理事件的说明进行操作。
  3. 当 AWS Config 启动修复操作时,将调用 StartAutomationExecution API 操作。在事件历史记录页面上,按事件名称查询属性进行筛选然后搜索 StartAutomationExecution
  4. 选择相关的 API 事件。
  5. 在事件详情页面的事件 JSON 中,复制 requestID 值。
  6. 打开 Systems Manager 控制台
  7. 在导航窗格中,选择自动化
  8. 自动化执行页面上,按执行 ID 属性进行筛选,然后搜索在步骤 4 中复制的 requestID 值。
  9. 查看执行详情页面上的信息。确定故障详细信息是否与 AWS Identity and Access Management(IAM)权限、语法问题或修复操作中错误配置的参数有关。使用这些详细信息来修复您的不合规资源。

相关信息

如何解决 AWS Config 控制台的报错消息?

View, update or add, and delete rules (AWS CLI)

AWS 官方
AWS 官方已更新 8 个月前