Pourquoi est-ce que je reçois une erreur MaxNumberOfConfigurationRecordersExceededException lorsque je crée un enregistreur de configuration AWS Config ?

Date de la dernière mise à jour : 20/04/2021

Lorsque j'essaie de créer un enregistreur de configuration AWS Config, j'obtiens une erreur MaxNumberOfConfigurationRecordersExceededException. Comment résoudre ce problème ?

Brève description

AWS Config utilise un enregistreur de configuration pour enregistrer les modifications apportées à la configuration de vos ressources. AWS Config n'autorise actuellement qu'un seul enregistreur de configuration par région dans un compte. L'erreur MaxNumberOfConfigurationRecordersExceededException indique que vous ne pouvez pas créer d'enregistreur de configuration, car il y en a déjà un présent sur votre compte pour la région. L'erreur se produit que l'enregistreur soit créé à l'aide de la console de gestion AWS, de l'interface de ligne de commande (AWS CLI) ou d'AWS CloudFormation.

Solution

Pour corriger l'erreur MaxNumberOfConfigurationRecordersExceededException et créer un enregistreur de configuration, vous devez identifier et supprimer l'enregistreur de configuration existant.

Remarque : il n'est pas possible de supprimer un enregistreur de configuration depuis la console. Les suppressions doivent être effectuées par une procédure de programmation.

Tout d'abord, vérifiez que les autorisations AWS Identity and Access Management (IAM) correctes sont en place pour exécuter les commandes requises. Ensuite, vous pouvez identifier et supprimer l'enregistreur de configuration existant à l'aide de l'interface de ligne de commande AWS ou de CloudFormation.

Autorisations IAM

Pour décrire et supprimer un enregistreur de configuration, ajoutez les autorisations IAM suivantes :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "config:DescribeConfigurationRecorders",
                "config:DeleteConfigurationRecorder"
            ],
            "Resource": "*"
        }
    ]
}

Pour démarrer et arrêter un enregistreur de configuration, ajoutez les autorisations IAM suivantes :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "config:PutConfigurationRecorder",
                "iam:PassRole",
                "config:DescribeConfigurationRecorders",
                "config:StopConfigurationRecorder",
                "config:StartConfigurationRecorder",
                "config:DeleteConfigurationRecorder"
            ],
            "Resource": "*"
        }
    ]
}

Identification et suppression d'un enregistreur de configuration (AWS CLI)

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis AWS CLI, assurez-vous que vous utilisez la toute dernière version d'AWS CLI.

Identifier le nom de l'enregistreur de configuration existant

Exécutez la commande suivante pour identifier l'enregistreur de configuration existant dans une région spécifique. Remplacez RegionID (ID de région) par votre région AWS.

$aws configservice describe-configuration-recorders --region RegionID

Vérifiez la sortie. Le nom de l'enregistreur de configuration existant est répertorié à côté de « name » (nom) dans la sortie.

Supprimer l'enregistreur de configuration existant

Exécutez la commande suivante pour supprimer l'enregistreur de configuration existant. Remplacez RecorderName (Nom de l'enregistreur) et RegionID (ID de région) par vos valeurs.

$aws configservice delete-configuration-recorder --configuration-recorder-name RecorderName --region RegionID

Remarque : la commande delete-configuration-recorder ne renvoie pas de sortie lorsque l'enregistreur est supprimé avec succès.

Appels d'API pour démarrer et arrêter l'enregistreur

Vous pouvez utiliser des appels d'API si vous devez démarrer ou arrêter un enregistreur de configuration.

Exécutez la commande suivante pour démarrer un enregistreur de configuration. Remplacez RecorderName (Nom de l'enregistreur) par le nom de votre enregistreur de configuration.

$aws configservice start-configuration-recorder --configuration-recorder-name RecorderName

Exécutez la commande suivante pour arrêter un enregistreur de configuration. Remplacez RecorderName (Nom de l'enregistreur) par le nom de votre enregistreur de configuration.

$aws configservice stop-configuration-recorder --configuration-recorder-name RecorderName

Identification et suppression d'un enregistreur de configuration (CloudFormation)

Si vous avez activé AWS Config à l'aide d'un modèle AWS CloudFormation StackSet, suivez les instructions de cette section pour identifier et supprimer un enregistreur de configuration.

Vous pouvez utiliser une ressource personnalisée basée sur AWS Lambda pour écrire une logique de code afin d'identifier et de supprimer un enregistreur de configuration.

Une fois l'enregistreur de configuration supprimé, vous pouvez utiliser le module cfn-response pour des ressources personnalisées afin de poursuivre la création d'enregistreur de configuration.

Une fois l'enregistreur de configuration créé, vous pouvez exécuter l'API StartConfigurationRecorder pour démarrer l'enregistreur.