如何解决在尝试删除 AWS Config 中的修正操作时出现的错误“NoSuchRemediationConfigurationException”或“unexpected internal error”?

上次更新时间:2020 年 1 月 14 日

我按照说明使用 AWS 命令行界面 (AWS CLI) 命令 delete-remediation-configuration 删除与 AWS Config 规则相关联的修正操作,却收到了类似以下内容的错误:

"An error occurred (NoSuchRemediationConfigurationException) when calling the DeleteRemediationConfiguration operation: No RemediationConfiguration for rule exists."

–或者–

使用 AWS 管理控制台:

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

简短描述

之所以出现此错误消息,是因为您在创建时指定了 PutRemediationConfiguration API 调用 ResourceType 参数,但在删除时未指定。如果您在 PutRemediationConfiguration API 中使用 ResourceType 参数,则在 DeleteRemediationConfiguration API 中也必须使用 ResourceType 参数。

注意:如果您没有为 PutRemediationConfiguration 提供资源类型,则默认为 ResourceType=*

解决方法

按照以下说明删除与 AWS Config 规则相关联的资源类型。

重要提示:在开始之前,请确保您已安装配置最新版本的 AWS CLI。

1.    运行 AWS CLI 命令 describe-remediation-configurations,以确认与 PutRemediationConfiguration 配合使用的资源类型类似如下:

注意:请将 example-config-rule-name 替换为您的 AWS Config 规则名称。

aws configservice describe-remediation-configurations --config-rule-names example-config-rule-name

2.    您会收到类似如下内容的输出:  

{
    "RemediationConfigurations": [
        {
            "TargetType": "SSM_DOCUMENT", 
            "MaximumAutomaticAttempts": 5, 
            "Parameters": {
                "AutomationAssumeRole": {
                    "StaticValue": {
                        "Values": [
                            "arn:aws:iam::example-accoun-Id:role/example-IAM-role"
                        ]
                    }
                }, 
                "BucketName": {
                    "ResourceValue": {
                        "Value": "RESOURCE_ID"
                    }
                }, 
                "SSEAlgorithm": {
                    "StaticValue": {
                        "Values": [
                            "AES256"
                        ]
                    }
                }
            }, 
            "Config-rule-name": "example-Config-rule-name", 
            "ResourceType": "AWS::S3::Bucket",                             
            "TargetId": "AWS-EnableS3BucketEncryption", 
            "RetryAttemptSeconds": 60, 
            "Automatic": true, 
            "Arn": "arn:aws:config:example-region:example-account-ID:remediation-configuration/example-config-rule-name/7467e289-f789-4b99-a848-deeeb3e90a0e"
        }
    ]
}

注意:在此示例中,资源类型为 AWS::S3::Bucket

3.    运行 AWS CLI 命令 delete-remediation-configuration,类似如下:

注意:请将 example-config-rule-nameexample-resource-typeexample-region 分别替换为您的 AWS Config 规则名称、资源类型和 AWS 区域。

aws configservice delete-remediation-configuration --config-rule-name example-config-rule-name --resource-type example-resource-type --region example-region 

这样就可以成功删除与您的 AWS Config 规则相关联的修正操作了。您现在应该能够删除 AWS Config 规则了。 


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?