AWS CloudFormation で削除または停止されたアカウントから StackSets を削除するにはどうすればよいですか?
最終更新日: 2020 年 6 月 22 日
AWS CloudFormation StackSet からスタックインスタンスを削除したいのですが、ターゲット AWS アカウントが削除または停止されたため、削除に失敗します。
簡単な説明
削除または停止されたターゲットアカウントのスタックを参照するスタックインスタンスを削除することはできません。削除オペレーションは失敗し、スタックインスタンスは INOPERABLE ステータスに移行します。AWSCloudFormationStackSetAdministrationRole が AWSCloudFormationStackSetExecutionRole ロールを引き受けることができないため、削除オペレーションは失敗します。これは、アカウントが削除または停止されると使用できなくなります。
INOPERABLE スタックインスタンスを削除するには、DeleteStackInstances オペレーションを実行し、RetainStacks を true に設定する必要があります。このオペレーションでは、今後のオペレーション用に、スタックインスタンスを StackSet から切り離します。
注意: 次の解決方法は、StackSet の PermissionModel が SELF-MANAGED に設定されている場合にのみ適用されます。
解決方法
INOPERABLE スタックインスタンスは、AWS CloudFormation コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して削除できます。
AWS CloudFormation コンソール
1. [AWS CloudFormation コンソール] を開きます。
2. ナビゲーションペインで、[StackSets] を選択します。
3. StackSet 名列から、削除するインスタンスを含むスタックセットを選択します。
4. [アクション] を選択してから、[StackSets からのスタックの削除] を選択します。
5. [デプロイオプションの設定] ページの [アカウント番号] に、一時停止または削除された AWS アカウントの 12 桁のアカウント番号を入力します。
6. [リージョンの指定] セクションで、スタックインスタンスの AWS リージョンを選択します。
7. [デプロイオプション] セクションで、[スタックを保持する] をオンにして [次へ] を選択します。
8. [確認] ページで、[送信] を選択します。
AWS CLI
AWS CLI で、delete-stack-instances コマンドを実行します。
$ aws cloudformation delete-stack-instances --stack-set-name awsstacksetname123 --accounts stackinstanceaccount --regions stackinstanceregion --retain-stacks
注意: awsstacksetname123 を StackSet の名前に置き換えます。stackinstanceaccount を、削除または停止されたアカウントの AWS アカウント番号に置き換えます。stackinstanceregion を、スタックインスタンスがあるリージョンに置き換えます。