Ma règle AWS Config ne fonctionne pas et je souhaite résoudre le problème.
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
La règle AWS Config que vous avez gérée peut ne pas fonctionner en raison de problèmes d'autorisations, d'étendue des ressources ou d'éléments de modification de configuration. Utilisez la procédure de résolution de problèmes suivante pour résoudre ces problèmes.
Vérifier l’enregistreur de configuration
Vérifiez que votre enregistreur de configuration enregistre tous les types de ressources requis par votre règle, par exemple AWS::EC2::Instance.
Mettre à jour l'option de conformité pour la règle
Sur la console AWS Config, l'option Conformité de votre règle peut afficher Aucun résultat signalé ou Aucune ressource concernée. Pour obtenir les résultats de l'évaluation, vous devrez peut-être mettre à jour la règle, modifier sa portée ou ajouter des ressources. Pour plus d'informations sur la procédure de résolution de ce problème, consultez la section Ajout de règles (console).
Examiner vos évaluations
Si AWS Config ne signale aucune durée d'évaluation et indique que les évaluations ont échoué, examinez l'appel d'API PutEvaluations dans les journaux AWS CloudTrail pour détecter des erreurs.
Consulter l'historique des événements
Dans CloudTrail, vous pouvez consulter l'historique de vos événements pour les événements AWS Config. Filtrez la source de l'événement pour config.amazonaws.com et recherchez les erreurs « Access denied » dans les résultats du journal filtré. Puis, examinez les erreurs pour plus de détails sur le problème.
Vous pouvez également consulter l'historique des événements pour connaître les déclencheurs d'évaluation périodiques. Pour résoudre ces problèmes, assurez-vous que la ressource peut accéder aux API de service pertinentes.
Examiner les éléments de configuration
Vérifiez la configuration des ressources et les délais de conformité. Assurez-vous que l'élément de configuration de votre ressource reflète correctement les modifications apportées aux règles AWS Config à l'aide d'un déclencheur basé sur les modifications de configuration.
Mettre à jour les autorisations du rôle d'enregistreur
Assurez-vous que le rôle d'enregistreur dispose des autorisations Gestion des identités et des accès AWS (AWS IAM) correctes. Ces autorisations utilisent l'API PutEvaluations pour décrire la configuration des ressources et la conformité en matière de publication.
Vérifier l'état d'évaluation des règles
Pour consulter l'état de votre règle, exécutez la commande describe-config-rule-evaluation-status suivante et vérifiez la valeur de LastErrorMessage :
aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID
Remarque : remplacez ConfigRuleName par le nom de la règle AWS Config et RegionID par votre région AWS.
Résoudre les problèmes liés aux règles AWS Config personnalisées
Pour les règles AWS Config personnalisées, AWS Config doit disposer des autorisations appropriées pour invoquer la fonction AWS Lambda. Si vous ne disposez pas des autorisations appropriées, le message d'erreur suivant s'affiche :
« Unable to execute lambda function »
Un exemple de politique de ressources de la fonction Lambda est fourni ci-dessous :
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "allow_config",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "lambda:InvokeFunction",
"Resource": "lambda-function-arn",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "AWS-accountID"
}
}
}
]
}
Pour en savoir plus sur l'erreur, consultez les événements PutEvaluations de vos journaux dont la valeur de Nom d'utilisateur correspond au nom de la fonction Lambda. Puis, consultez le message d'erreur pour plus de détails.
Si vous n'avez pas autorisé le rôle de service de la fonction Lambda à exécuter config:PutEvaluations, exécutez la commande add-permission suivante :
aws lambda add-permission --function-name function_name --region RegionID --statement-id allow_config --action lambda:InvokeFunction --principal config.amazonaws.com --source-account AWS-accountID
Remarque : remplacez function_name par le nom de la fonction Lambda, RegionID par votre région et AWS-accountID par l’ID de compte AWS.
Si les autorisations pour le rôle sont correctes, consultez le code de la fonction Lambda pour identifier les exceptions déclenchées. Pour plus de détails, consultez les journaux du groupe de journaux /aws/lambda/FunctionName Amazon CloudWatch associé à la fonction Lambda.
Remarque : pour générer davantage de journaux de débogage, ajoutez une instruction d’impression au code Lambda.
Informations connexes
Pourquoi ne puis-je pas créer ou supprimer des règles de configuration pour AWS Organizations dans AWS Config ?