エンジニア

2022.08.02

AWS Organizations関連Tips②(StackSetsターゲットOUの確認・削除・追加方法)

こんにちは。もちです。
社内のAWS Organizatinosを担当しています。

先日、既存OUと他サービスの紐付きを確認した際に気づいた落とし穴です。

結論から申し上げると、

StackSetsのターゲットOUはコンソール上で確認できない。
確認方法はCLIのみ。

ということです。

詳しくご説明します。

StackSetsとは、1つのCloudFormation テンプレートを使用して、複数のリージョンのAWS アカウントにスタックを作成できるAWSの機能です。

弊社では、特定のOU配下にアカウントを移動した際に、AWS CloudFormationのStackSetsが動くよう設定しています。

検証のため、「stacksets-test」という名前のOUを作成します。


続いて、「ou-test」という名前のStackSetsを作成します。

デプロイオプションで、ターゲットOUを指定します。

StackSetsが作成されましたが、デプロイ設定の欄にターゲットOUが表示されていません。

詳細画面にも記載されていません。

CLIではターゲットOUが確認できました。

StackSetsターゲットOU確認

コマンド例

aws cloudformation describe-stack-set --stack-set-name "スタックセット名" --region "スタックセットが作成されたリージョン" --query "StackSet" --output text | grep "ORGANIZATIONALUNITIDS"

実行すると、ターゲットOUIDが返ってきます。

もちろん、削除もCLIでしかできません。
追加はStackSetsのアクション>「詳細を編集」から行えます。

ここで豆知識ですが、aws cloudformation delete-stack-instancesやaws cloudformation create-stack-instancesを使用する際、–regionsでStackのデプロイリージョンを指定し、–regionでStackSetsを作成したリージョンを指定することに注意が必要です。

・StackSetsターゲットOU削除

コマンド例

aws cloudformation delete-stack-instances --stack-set-name "スタックセット名" --deployment-targets OrganizationalUnitIds='["OU-ID"]' --regions '["デプロイリージョン"]' --no-retain-stacks --region "スタックセットが作成されたリージョン"

ターゲットOUが削除され、確認コマンドは何も返ってきません。

・(おまけ)StackSetsターゲットOU追加

コマンド例

aws cloudformation create-stack-instances --stack-set-name "スタックセット名" --deployment-targets OrganizationalUnitIds='["OU-ID"]' --regions '["デプロイリージョン"]' --region "スタックセットが作成されたリージョン"

ターゲットOUが追加され、確認コマンドでOUIDが返ってきます。

以上のことをAWSサポートにも確認しましたが、やはり確認・削除は現状CLIでしかできないようです。
もしくは、スタックインスタンスを見て、どのアカウントに適用されたかでOUを推測する方法も教えて頂きました。

検証のために既存OUを複製したいとか、このStackSetsのターゲットって何??と思ったら、CLIで確認してください。

今回も非常にニッチな情報でした。
スプラ3発売まで50日を切りましたね!!!
ではまた。

一覧に戻る