Comment supprimer une instance de pile d'un ensemble de piles CloudFormation dans un compte AWS fermé ou suspendu ?

Dernière mise à jour : 30/08/2021

Je souhaite supprimer une instance de pile d'un ensemble de piles AWS CloudFormation, mais la suppression échoue, car le compte AWS cible est supprimé ou suspendu.

Brève description

Lorsqu'un compte AWS est fermé ou suspendu, le rôle d'administration CloudFormation StackSets ne peut plus accéder au rôle d'exécution StackSets de ce compte. Cela empêche les opérations d'ensemble de piles de s'exécuter sur les instances de pile du compte. Si vous tentez de supprimer une instance de pile dans un compte fermé ou suspendu, un message d'erreur s'affiche. Ensuite, le statut de l'instance de pile peut devenir INOPERABLE.

Pour supprimer des instances de pile de comptes fermés ou suspendus, vous devez effectuer l'opération DeleteStackInstances avec l'option RetaStacks affectée de la valeur true. Cette opération dissocie l'instance de pile de l'ensemble de piles sans supprimer l'instance de pile dans le compte cible.

Les étapes de résolution suivantes dépendent du modèle d'autorisations utilisé par l'ensemble de piles : autorisations autogérées ou autorisations gérées par le service avec AWS Organizations.

Remarque : si des erreurs s'affichent lors de l'exécution de commandes AWS Command Line Interface (AWS CLI), assurez-vous que vous utilisez la version la plus récente de l’AWS CLI.

Solution

Suppression des instances de pile inopérables pour les ensembles de piles avec des autorisations autogérées

Pour les ensembles de piles qui utilisent des autorisations autogérées, vous pouvez supprimer l'instance de pile INOPERABLE avec la console CloudFormation ou l’AWS CLI.

Console CloudFormation :

1.    Ouvrez la console CloudFormation.

2.    Dans le volet de navigation, sélectionnez StackSets.

3.    Dans la colonne Nom de StackSet sélectionnez l'ensemble de piles qui contient l'instance que vous souhaitez supprimer.

4.    Choisissez Actions, puis Supprimer des piles de StackSets.

5.    Sur la page Set deployment options (Définir les options de déploiement), pour Account Numbers (Numéros de compte), saisissez le numéro de 12 chiffres du compte AWS qui est suspendu ou supprimé.

6.    Dans la section Spécifier des régions, choisissez la région AWS de votre instance de pile.

7.    Dans la section Options de déploiement, activez Conserver les piles, puis choisissez Suivant.

8.    Sur la page Reveiw (Vérifier), choisissez Submit (Soumettre).

AWS CLI :

Dans l’AWS CLI, exécutez la commande suivante :

$ aws cloudformation delete-stack-instances --stack-set-name YourStackSetName --accounts YourStackInstanceAccount --regions YourStackInstanceRegion --retain-stacks

Remarque : remplacez NomDeVotrePile par le nom de votre ensemble de piles. Remplacez VotreInstanceDePile par le numéro du compte AWS supprimé ou suspendu. Remplacez VotreRégionInstanceDePile par la région où se trouve l'instance de pile.

Suppression des instances de pile inopérables pour les ensemble de piles disposant d'autorisations gérées par le service

Pour les ensembles de piles qui utilisent des autorisations gérées par le service, les opérations de la console CloudFormation ne peuvent cibler que des unités d'organisation entières (UO). Vous devez utiliser l’AWS CLI pour supprimer une instance de pile d'un seul compte.

Dans l’AWS CLI, exécutez la commande suivante :

aws cloudformation delete-stack-instances --stack-set-name YourStackSetName --deployment-targets Accounts=YourStackInstanceAccount --regions YourStackInstanceRegion --retain-stacks

Remarque : remplacez NomDeVotrePile par le nom de votre ensemble de piles. Remplacez VotreInstanceDePile par le numéro du compte AWS supprimé ou suspendu. Remplacez VotreRégionInstanceDePile par la région où se trouve l'instance de pile.


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


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