Comment résoudre les erreurs de détection des dérives dans CloudFormation avec ma règle gérée AWS « cloudformation-stack-drift-detection-check » pour AWS Config ?

Dernière mise à jour : 06/04/2021

Je souhaite résoudre les erreurs de détection des dérives dans AWS CloudFormation avec ma règle gérée AWS cloudformation-stack-drift-detection-check pour AWS Config.

Brève description

Vous pouvez recevoir les erreurs suivantes même si le statut de dérive de votre pile est IN_SYNC dans la console CloudFormation :

  • « Impossible pour AWS CloudFormation de détecter la dérive. La valeur par défaut est NON_COMPLIANT. Réévaluez la règle et réessayez. Si le problème persiste, contactez le support d'AWS CloudFormation ».
  • « Votre opération de détection de dérive a échoué pour la pile spécifique. Vérifiez les autorisations existantes de votre rôle AWS CloudFormation et ajoutez les autorisations manquantes ».

Selon l'erreur que vous recevez, choisissez l'une des options suivantes :

  • Si vous recevez l'erreur NON_COMPLIANT, suivez les étapes de la section Mise à jour de vos règles AWS Config.
  • Si vous recevez l'erreur relative aux autorisations, suivez les étapes de la section Configuration des autorisations appropriées.

Remarque : la règle gérée AWS cloudformation-stack-drift-detection-check examine les piles CloudFormation pour détecter les dérives à l'aide de l'API DetectStackDrift. Cette règle dispose à la fois d'un type de déclencheur périodique et de changement de configuration. Vous recevez un message d'erreur si la détection des dérives échoue.

Résolution

Mise à jour de vos règles AWS Config

Vous pouvez recevoir un message d'erreur NON_COMPLIANT dans la console AWS Config pour les raisons suivantes :

  • Les ressources de votre pile CloudFormation ne prennent pas en charge la détection des dérives. Vous recevez une erreur sous forme d'annotation par rapport à la ressource NON_COMPLIANT pour votre règle AWS Config. Par exemple, vous recevez une erreur « La détection des dérives n'est pas prise en charge pour ResourceType » dans le journal AWS CloudTrail.
  • Votre règle AWS Config dépend de la disponibilité de DetectStackDrift. Vous recevez une erreur de limitation ou de type « Dépassement de la limite » car AWS Config définit par défaut la règle sur NON_COMPLIANT lorsque la limitation se produit.

Pour résoudre l'erreur résultant de l'absence de prise en charge de la détection des dérives :

Ignorez la pile CloudFormation dont le statut est NON_COMPLIANT. L'erreur est un faux positif dans ce scénario. Pour plus d'informations, consultez Évaluation de vos ressources.

-ou-

Créez une règle AWS Config personnalisée qui comprend une disposition permettant d'exclure vos piles des évaluations. Pour accéder à des exemples de règles AWS Config, consultez Référentiel de règles AWS Config et RDKLib.

Pour résoudre l'erreur résultant de la disponibilité de DetectStackDrift :

1.    Évaluez à nouveau votre règle AWS Config.

Remarque : par exemple, vous pouvez joindre des autorisations approuvées config.amazonaws.com et des autorisations de stratégie ReadOnlyAccess (AWS Managed) pour le nom ARN (Amazon Resource Name) du rôle, qui est fourni dans le paramètre requis cloudformationRoleArn de la règle. Pour plus d'informations, consultez Considérations relatives à la détection des dérives.

2.    Procédez à la détection des dérives sur vos piles CloudFormation.

3.    Exécutez l'évaluation via votre règle AWS Config.

Configuration des autorisations appropriées

Vous recevez une erreur relative aux autorisations lorsque le rôle AWS Identity and Access Management (IAM) correspondant au paramètre cloudformationRoleArn requis ne dispose pas de l'API DetectStackDrift, de l'API DetectStackResourceDrift ou d'autres autorisations de service requises.

Pour résoudre cette erreur, modifiez la stratégie d'approbation de votre rôle IAM. Vous devez joindre les autorisations config.amazonaws.com et ReadOnlyAccess (AWS Managed) pour cloudformationRoleArn.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?