説明
サービスマネージド型 StackSet で自動デプロイが有効な場合、対象の組織や OU からアカウントを削除・移動すると、関連するスタックが削除される場合があります。AutoDeployment.RetainStacksOnAccountRemoval: true は、その際にスタックとリソースを保持する設定です。
保持したリソースは、その StackSet の管理対象ではなくなります。この設定はあらゆるスタック削除を防ぐものではなく、データのバックアップも代替しません。
想定される影響
- アカウントの移動や組織変更で本番スタックが削除されると、サービス停止やデータ損失につながる可能性があります。
- 復旧に再デプロイやデータの復元が必要になる場合があります。
対処方法
- アカウントをデプロイ対象から除外した後もリソースが必要なら、
RetainStacksOnAccountRemovalをtrueに設定してください。 - 組織変更の前に、影響を受けるスタック、リソースの削除ポリシー、バックアップを確認してください。
- 保持するリソースの管理担当者、アクセス制御、費用管理、後の削除手順を決めてください。
例
以下では、SERVICE_MANAGED StackSet のアカウント除外時の動作を比較します。必要な AWS Organizations 連携を設定し、StackTemplateUrl にアクセス可能な S3 テンプレート URL を指定してください。
変更前
yaml
Resources:
StackSet:
Type: AWS::CloudFormation::StackSet
Properties:
PermissionModel: SERVICE_MANAGED
StackSetName: some-stack-name
TemplateURL: !Ref StackTemplateUrl
AutoDeployment:
Enabled: true
RetainStacksOnAccountRemoval: false
自動デプロイは有効ですが、アカウントの除外時にスタックを保持しません。削除対象はテンプレートや各リソースの削除ポリシーにも依存します。
変更後
yaml
Resources:
StackSet:
Type: AWS::CloudFormation::StackSet
Properties:
PermissionModel: SERVICE_MANAGED
StackSetName: some-stack-name
TemplateURL: !Ref StackTemplateUrl
AutoDeployment:
Enabled: true
RetainStacksOnAccountRemoval: true
アカウントがデプロイ対象から外れてもスタックとリソースを保持します。その後は StackSet の外で管理する必要があり、費用も引き続き発生する場合があります。