Pourquoi mes opérations de pile CloudFormation échouent-elles après avoir ajouté des identifications à des ressources alors que je n'ai modifié aucune politique IAM ?
Je reçois des erreurs lorsque j'applique des identifications de ressources à ma pile AWS CloudFormation, mais je n'ai pas mis à jour mon principal AWS Identity and Access Management (IAM).
Résolution
Dans les nouveaux comptes AWS, si vous créez, mettez à jour ou supprimez des identifications de ressources dans les piles CloudFormation sans les autorisations appropriées relatives aux identifications, vos opérations de pile échouent.
Les comptes existants sont exemptés du nouveau comportement des opérations de pile jusqu'au 29 février 2024.
Pour éviter toute interruption de service, accordez à votre principal IAM les autorisations nécessaires relatives aux identifications. Si votre principal IAM ne peut pas gérer les identifications de ressources, CloudFormation effectue des opérations de pile et ne modifie aucune identification de ressource. Par conséquent, les identifications de pile peuvent ne pas correspondre aux identifications de ressources. Pour résoudre ce problème, vous devez synchroniser vos identifications de ressources dans votre modèle CloudFormation.
Important : Dans la résolution suivante, certaines étapes peuvent être facultatives pour votre cas d'utilisation.
Ajouter les autorisations manquantes au principal IAM
Pour gérer vos identifications de ressources avec CloudFormation dans les comptes existants ou nouveaux, procédez comme suit.
Trouver le principal IAM utilisé pour les opérations d’identifications
Pour trouver le principal IAM que vous souhaitez utiliser pour ajouter des identifications aux ressources, procédez comme suit :
- Ouvrez la console CloudFormation.
- Dans le volet de navigation, sélectionnez Piles.
- Sélectionnez le nom de votre pile, puis copiez l'ID de la pile.
- Ouvrez la console AWS CloudTrail.
- Dans le volet de navigation, sélectionnez Historique des événements.
- Pour Attributs de recherche, sélectionnez Nom de la ressource. Puis, saisissez l’ID de la pile dans le champ de recherche, puis lancez la recherche.
Remarque : L’historique des événements inclut les événements des 90 derniers jours. Si votre recherche par ID de pile n'affiche aucun événement, mettez à jour la pile. Les mises à jour de la pile sont enregistrées dans l'historique des événements CloudTrail. Vous pouvez récupérer un principal IAM lorsqu'une mise à jour est enregistrée. - Sélectionnez le nom du premier événement de la liste de l'historique des événements, puis passez en revue l'enregistrement de l'événement.
- Trouvez le principal IAM dans la charge utile de l'événement.
- Recherchez « requestParameters » pour examiner la propriété roleArn. S'il existe un roleArn, la valeur de la chaîne est le principal IAM.
- S'il n'existe pas de roleArn, recherchez « userIdentity » pour examiner la valeur principalId.
Accorder des autorisations d’identification dans une politique IAM
Lorsqu'un service infrastructure en tant que code (IaC) gère un principal IAM, vous devez mettre à jour la politique IAM associée au même service IaC. Pour utiliser la console de gestion AWS afin d'accorder des autorisations relatives aux identifications, créez une nouvelle politique ou mettez à jour une politique existante. Vous pouvez également exécuter put-role-policy dans l'interface de ligne de commande AWS (AWS CLI) pour configurer les autorisations du principal IAM relatives aux identifications.
Pour plus d'informations, consultez la section Comment résoudre l'erreur liée aux autorisations d’identification dans ma pile CloudFormation ?
Important : Pour déployer des piles CloudFormation sur un nouveau compte, ignorez la section suivante.
(Facultatif) Synchroniser les identifications de ressources de vos piles CloudFormation dans les comptes existants
Lorsque vous configurez les autorisations d’identification pour votre pile CloudFormation, les identifications de vos ressources peuvent ne pas correspondre aux identifications de votre modèle CloudFormation. Pour faire correspondre les identifications sur votre modèle aux identifications de vos ressources, procédez comme suit.
Vérifier que les piles concernées ne dérivent pas
Pour vérifier l'absence de dérive dans vos piles concernées, procédez comme suit :
- Ouvrez votre tableau de bord AWS Health pour obtenir les données relatives aux ressources concernées.
- Détectez la dérive sur votre pile CloudFormation et examinez les résultats de la dérive.
Remarque : Pour plus d'informations sur la détection de dérives, consultez la section Ressources prenant en charge les opérations d'importation et de détection de dérive et Détecter la dérive sur des ressources de pile individuelles. - Une ressource est correctement configurée lorsque l'état de dérive de votre ressource est IN_SYNC et que la ressource prend en charge la détection de dérives.
- Lorsque l'état de dérive d'une ressource est MODIFIED, sélectionnez la ressource, puis Afficher les détails de l’écart pour examiner les différences.
- Selon le scénario de dérive que vous rencontrez, suivez les étapes décrites dans les sections suivantes.
Synchroniser les identifications de ressources qui prennent en charge la détection de dérives avec votre modèle CloudFormation
Synchronisez les identifications de ressources qui prennent en charge la détection de dérives dans les scénarios suivants :
- L'état de dérive d'une ressource est MODIFIED et la ressource prend en charge la détection de dérives.
- Toutes les ressources ont des identifications modifiées avec le code d’état difference-type REMOVE.
- Une ressource a un changement d’identification qui n'est pas intitulé REMOVE, et chaque clé d’identification dans Valeur réelle se trouve dans Attendue.
Important : Ces étapes suppriment temporairement les identifications au niveau de la pile des autres ressources. Si l'un de vos services repose sur des identifications au niveau de la pile, consultez Corriger les identifications sur la ressource proprement dite pour éviter les interruptions.
Pour synchroniser vos identifications de ressources avec votre modèle CloudFormation, procédez comme suit :
- Enregistrez une copie de votre modèle CloudFormation d'origine.
- Dans le modèle CloudFormation copié, supprimez toutes les identifications étiquetées REMOVE.
- Mettez à jour la pile avec le nouveau modèle, puis supprimez toutes les identifications au niveau de la pile qui sont étiquetées REMOVE.
Avertissement : Les identifications sont supprimées de toutes les ressources de la pile. Assurez-vous de réappliquer les identifications qui ont échoué. - Revenez au modèle d'origine, puis redéployez-le en y ajoutant toutes les identifications au niveau de la pile.
Remarque : Ces mises à jour réappliquent toutes les identifications qui ne s'appliquaient pas lorsque vous ne disposiez pas des autorisations suffisantes.
Corriger les identifications sur la ressource
Corrigez les identifications d'une ressource dans les scénarios suivants :
- Une ressource possède un changement d’identification étiqueté REMOVE. Le changement d’identification de la ressource indique que les clés d’identification dans l'état Attendue sont manquantes dans l'état Valeur réelle.
- Une ressource a un changement d’identification qui n'est pas étiqueté REMOVE. Les clés d’identification sont à la fois dans les états Attendue et Valeur réelle, mais avec des valeurs différentes.
Passez en revue les détails de dérive suivants sur la ressource :
- Notez chaque clé/valeur d’identification répertoriée sous Attendue et absente de Valeur réelle. Vous devez ajouter ces identifications.
- Notez chaque clé d’identification répertoriée sous Valeur réelle, mais manquante sous Attendue. Vous devez supprimer ces identifications.
- Notez chaque clé d’identification répertoriée sous Attendue et Valeur réelle et dont la valeur est différente. Vous devez mettre à jour ces identifications à Attendue.
Pour corriger les identifications de la ressource, procédez comme suit :
- Ouvrez la console CloudFormation.
- Dans le volet de navigation, sélectionnez Piles.
- Sélectionnez la pile concernée.
- Sélectionnez Ressources, puis ID physique de la ressource concernée.
- Dans la section Identifications de la ressource, ajoutez, supprimez ou mettez à jour manuellement chaque identification. Les identifications doivent correspondre à l'état répertorié sous Attendue dans les détails de la dérive.
- Sélectionnez Enregistrer.
Pour vérifier que la pile et les ressources sont synchronisées, il est recommandé d'effectuer à nouveau les opérations de détection de dérives. Pour vérifier, suivez les étapes décrites dans la section Vérifier la dérive des piles concernées.
Synchroniser les identifications de ressources qui ne prennent pas en charge la détection de dérives
Synchronisez les identifications de ressources qui ne prennent pas en charge la détection de dérives lorsque l'état de dérive d'une ressource est IN_SYNC et que la ressource ne prend pas en charge la détection de dérives.
Remarque : La mise à jour suivante réapplique toutes les identifications qui ne s'appliquaient pas lorsque vous ne disposiez pas des autorisations suffisantes.
Si vos ressources ne prennent pas en charge la détection de dérives, utilisez un modèle CloudFormation pour corriger les incohérences et vérifier que CloudFormation gère les ressources.
Procédez comme suit :
- Enregistrez une copie de votre modèle CloudFormation d'origine.
- Dans le modèle CloudFormation copié, comparez les identifications de ressources aux ressources déployées.
- Selon les identifications rencontrées, suivez les étapes qui s'appliquent à votre situation.
Si aucune identification n'est spécifiée dans votre ressource et que certaines identifications sont définies dans le modèle CloudFormation, procédez comme suit :
- Supprimez toutes les identifications du modèle CloudFormation.
- Appliquez le nouveau modèle CloudFormation pour mettre à jour la pile. Supprimez ensuite toutes les identifications au niveau de la pile.
- Revenez au modèle CloudFormation d'origine, puis redéployez-le en y ajoutant toutes les identifications au niveau de la pile.
Si les identifications spécifiées dans la ressource déployée ne correspondent pas aux identifications de la pile, procédez comme suit :
- Supprimez toutes les identifications au niveau de la pile pour mettre à jour la pile.
- Dans le modèle CloudFormation, modifiez toutes les identifications afin qu'elles correspondent à la ressource déployée.
- Mettez à jour la pile avec le nouveau modèle CloudFormation. Assurez-vous que toutes les identifications de niveau de pile précédemment associées sont incluses.
Contenus pertinents
- Réponse acceptéedemandé il y a un moislg...
- demandé il y a un anlg...
- Réponse acceptéedemandé il y a un anlg...
- demandé il y a 2 anslg...
- demandé il y a un anlg...
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a 9 mois
- AWS OFFICIELA mis à jour il y a 3 mois