我按照说明使用 AWS Config 规则修复不合规的 AWS 资源。但是,修复操作失败,提示错误:“Action execution failed (details)”。我查看了错误详情,但没有足够的信息来排查这个问题。
解决方法
按照以下说明使用 AWS 命令行界面(AWS CLI)或 AWS CloudTrail 事件历史记录对修复操作失败进行故障排除。
注意: 如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI。
AWS CLI
要查找与失败的修复操作相关的错误信息,请在 AWS CLI 中完成以下步骤:
-
要获得更详细的错误消息、状态信息和修复操作步骤的时间戳,请运行 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-rule、example-region、example-resource-type 和example-resource-ID 替换为您的 AWS Config 规则名称、AWS 区域、资源类型和资源 ID 。
-
查看您的命令输出。
请参阅以下示例:
{
"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"
}
]
}
]
}
-
在 StepDetails列表中,查看错误消息信息。
**注意:**错误中的时间戳采用纪元时间格式。要将时间戳转换为世界标准时间,请使用免费的在线转换器,例如 EpochConverter。
CloudTrail 事件历史记录
要查找与失败的修复操作相关的错误信息,请在 CloudTrail 和 AWS Systems Manager 控制台中完成以下步骤:
- 打开 CloudTrail 控制台。
- 按照使用 CloudTrail 控制台查看最近的 CloudTrail 管理事件的说明进行操作。
- 当 AWS Config 启动修复操作时,将调用 StartAutomationExecution API 操作。在事件历史记录页面上,按事件名称查询属性进行筛选,然后搜索 StartAutomationExecution。
- 选择相关的 API 事件。
- 在事件详情页面的事件 JSON 中,复制 requestID 值。
- 打开 Systems Manager 控制台。
- 在导航窗格中,选择自动化。
- 在自动化执行页面上,按执行 ID 属性进行筛选,然后搜索在步骤 4 中复制的 requestID 值。
- 查看执行详情页面上的信息。确定故障详细信息是否与 AWS Identity and Access Management(IAM)权限、语法问题或修复操作中错误配置的参数有关。使用这些详细信息来修复您的不合规资源。
相关信息
如何解决 AWS Config 控制台的报错消息?
View, update or add, and delete rules (AWS CLI)