Comment résoudre l'erreur « NoSuchRemediationConfigurationException » ou « erreur interne inattendue » lors d'une tentative de suppression d'une action de correction dans AWS Config ?

Date de la dernière mise à jour : 14/12/2020

Lorsque je supprime une action de correction associée à une configuration AWS, je reçois une erreur similaire à l'un des éléments suivants :

Utilisation de la commande delete-remediation-configuration de l'interface de ligne de commande AWS (AWS CLI) :

« Une erreur s'est produite (NoSuchRemediationConfigurationException) lors de l'appel de l'opération DeleteRemediationConfiguration : aucune RemediationConfiguration n'existe pour la règle. »

-ou-

Utilisation d'AWS Management Console:

« Une erreur interne inattendue est survenue avec AWS Config. Veuillez réessayer ou contacter AWS Support si l'erreur persiste. »

Comment résoudre cette erreur ?

Brève description

Ce message d'erreur s'affiche car le paramètre ResourceType de l'appel d'API PutRemediationConfiguration a été spécifié à la création, mais pas à la suppression. Si vous utilisez le paramètre ResourceType dans l'API PutRemediationConfiguration, vous devez également l'utiliser ResourceType dans l'API DeleteRemediationConfiguration.

Remarque : si aucun type de ressource n'est fourni pour PutRemediationConfiguration, la valeur par défaut est ResourceType=*.

Résolution

Suivez ces instructions pour supprimer le type de ressource associé à votre règle AWS Config.

Important : avant de commencer, assurez-vous que la dernière version de l'interface de ligne de commande AWS est installée et configurée.

1.    Exécutez la commande describe-remediation-configurations de l'interface de ligne de commande AWS pour identifier le type de ressource utilisé avec PutRemediationConfiguration :

Remarque : remplacez example-config-rule-name par le nom de votre règle AWS Config.

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

2.    Vous obtenez une sortie similaire à ce qui suit :

{
    "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"
        }
    ]
}

Remarque : dans cet exemple, le type de ressource est AWS::S3::Bucket.

3.    Exécutez la commande delete-remediation-configuration de l'interface de ligne de commande AWS :

Remarque : remplacez example-config-rule-name, example-resource-type, et example-region par le nom de votre règle AWS Config, le type de ressource et la région AWS.

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

L'action de correction associée à votre règle AWS Config est supprimée. Vous pouvez maintenant supprimer la règle AWS Config.