Cfn StackSetsについて
StackSetの更新はStackSetを選択して、StackSetの詳細を編集を選択。修正したyamlをアプロードする
VSCodeでCfnの修正をする
StackSetからConfigRuleを追加することができた
StackSet is not empty
aws cloudformation delete-stack-instances --stack-set-name sample-ec2-stop2 --regions '["ap-northeast-1"]' --no-retain-stacks
でスタックセットを削除しようとすると下記エラーがでる
An error occurred (ValidationError) when calling the DeleteStackInstances operation: StackSets with SERVICE_MANAGED permission model can only have OrganizationalUnit as target
aws cloudformation delete-stack-instances --stack-set-name sample-ec2-stop2 --deployment-targets OrganizationalUnitIds='["<ouid>"]' --regions '["ap-northeast-1"]' --no-retain-stacks
で消えた。さっきは消えなかった気がするのだが、、、
StackSetsのパラメータを上書きすると、スタックインスタンスのパラメータだけ変更することができる
StackSetsの削除→OK
特定スタックインスタンスの更新→OK(上書き)
スタックインスタンスの更新→これは詳細の編集
詳細の編集だと変わらないパラメータも存在してる
→上書きしたから?試してみる
→上書きしていない状態だと詳細の編集でスタックインスタンスの値も変わった
StackSetsからスタックを削除すると、スタックインスタンスとスタックインスタンスがもつスタックもちゃんと削除される
StackSetsは作成する時にリージョンを選択できる。編集する時に選択できるリージョンはStackSets作成する時のリージョンと同じ
StackSetsの管理アカウントにStackが展開されないのは、そういう仕様っぽい
Scopeに指定する時のインスタンスタイプ
s3-account-level-public-access-blocks のリソースはAccessPoint?
→違った。Configに記載されているリソースをそのまま使用するとよい
assumeRole parameter must be specified in the target document for CheckForStoppedInstances
URLとか整理した情報を記事にしてクローズする
StackSetsでOUIDを入力するところは、RootIDを入れれば問題ない
StackSets作成画面でロールを指定したり、OUIDの指定画面がなかったりと少し違うことがあるのだがこれは、self-managedかservice-managedの違い。自分はservice-managedを利用している
サービスマネージドを使うなら
StackSetsでサービスマネージド使うなら、管理アカウントからじゃないとだめっぽい
サービスマネージドという概念はStackSetのものであって、Stackではない
CloudFormationでConfig有効化→ConfigRule追加のように順序を付けたい時はDependsOnを使うと良さそう
StackSetsは自動適用ができる
セルフマネージドはOrganizationsを使用しない。あとロールを自分で作成する。サービスマネージドはOrganizationsで管理sあれたアカウントにデプロイできる。あとロールの作成が不要。
StackSetsのスタック更新ベストプラクティス