Comment résoudre les erreurs « MalformedPolicyDocument » dans AWS CloudFormation ?

Lecture de 4 minute(s)
0

Lorsque j'essaie de créer ou de mettre à jour une pile AWS CloudFormation, j'obtiens un message d'erreur « MalformedPolicyDocument ». J'obtiens toujours l'erreur, même après avoir validé le modèle.

Brève description

L'API ValidateTemplate (Validation du modèle) dans AWS CloudFormation peut uniquement valider la syntaxe de votre modèle. L'API ne peut pas valider les valeurs de propriété que vous spécifiez pour une ressource. La validité de la stratégie n'est pas vérifiée si un document de stratégie est configuré dans le cadre de la valeur de propriété.

Vous obtenez l'erreur « MalformedPolicyDocument » lorsque le document de stratégie n'est pas syntaxiquement ou sémantiquement correct, conformément à la syntaxe du langage de stratégie.

Pour résoudre cette erreur, vous devez confirmer que le document de stratégie est valide pour le type de ressource particulier dont il fait partie.

Résolution

Recherche des informations détaillées du message d'erreur dans vos événements de pile

  1. Ouvrez la console AWS CloudFormation.
  2. Dans le volet de navigation, sélectionnez Stacks (Piles).
  3. Choisissez la pile qui a renvoyé l'erreur, puis choisissez l'onglet Events (Événement).
  4. Recherchez dans la colonne Motif du statut un message qui explique la cause de l'erreur.

Si vous ne parvenez toujours pas à trouver la cause de l'erreur, suivez les étapes de la section Obtenir plus d'informations sur l'événement AWS CloudTrail qui a provoqué l'erreur.

Obtenez plus d'informations sur l'événement AWS CloudTrail qui a provoqué l'erreur

Vous pouvez obtenir plus d'informations en vérifiant la propriété errorMessage de l'événement CloudTrail pour l'opération sur votre type de ressource à l'origine de l'erreur.

Par exemple, si « MalformedPolicyDocument » provient d'une erreur dans une stratégie en ligne attachée à un rôle AWS Identity and Access Management (IAM), effectuez les opérations suivantes :

  1. Ouvrez la console AWS CloudTrail.
  2. Dans le volet de navigation, sélectionnez Event history (Historique des événements).
  3. Dans la zone de recherche Filter (Filtre) sélectionnez Event name (Nom d'événement) comme attribut de recherche, puis entrez PutRolePolicy dans la zone de texte correspondante.
  4. Pour Plage de temps, définissez l'heure de l'événement CloudTrail sur l'heure que vous voyez dans le message d'erreur affiché dans les événements AWS CloudFormation.
  5. Dans la colonne Nom d'événement, choisissez votre événement.
  6. Dans Event record (Enregistrement d'événement), vérifiez la valeur de la propriété errorMessage pour obtenir un message détaillé.

Validez la stratégie passée dans l'événement CloudTrail

L'événement CloudTrail pour l'action au niveau de l'API sur la ressource à l'origine de l'erreur contient généralement la forme résolue du document de stratégie. Vous pouvez copier ce document de stratégie résolu, puis créer une nouvelle stratégie dans AWS Management Console directement pour cette ressource particulière.

Par exemple, si « MalformedPolicyDocument » provient d'une erreur dans une stratégie en ligne attachée à un rôle IAM, effectuez les opérations suivantes :

  1. Ouvrez la console CloudTrail.
  2. Dans le volet de navigation, sélectionnez Event history (Historique des événements).
  3. Dans la zone de recherche Filter (Filtre) sélectionnez Event name (Nom d'événement) comme attribut de recherche, puis entrez PutRolePolicy dans la zone de texte correspondante.
  4. Pour Plage de temps, définissez l'heure de l'événement CloudTrail sur l'heure que vous voyez dans le message d'erreur affiché dans les événements AWS CloudFormation.
  5. Dans la colonne Nom d'événement, choisissez votre événement.
  6. À partir de Event record (Enregistrement d'événement), copiez la valeur de la propriété policyDocument sous requestParameters.
  7. Dans un éditeur de texte, supprimez les caractères d'échappement « \ » du document de stratégie.
  8. Ouvrez la console IAM.
  9. Dans le volet de navigation, choisissez Policies (Politiques).
  10. Choisissez Create policy (Créer une stratégie), puis choisissez l'onglet JSON.
  11. Collez le document de stratégie que vous avez copié à l'étape 6, puis choisissez Review policy (Évaluer la stratégie).
  12. Vérifiez le contenu du message d'erreur affiché dans la boîte de dialogue rouge au début de la page. Le message d'erreur fournit une explication plus détaillée de l'échec de validation de la stratégie.

Informations connexes

Grammaire du langage de stratégie JSON IAM

Référence des éléments de stratégie JSON IAM

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans