AWS nuke触ってみた
自己紹介
名前:富松 広太(とみまつ こうた)
Blog:https://cloud-aws-gcp.hateblo.jp/
twitter:@kotamemento
2020~21 APN Ambassador
ALL AWS Certifications Engineer
from:滋賀県
AWS nukeって?
AWS nukeって?
AWS nukeって?
AWS nukeって?
全てのリソースを削除する
-> なぜ必要になったか
AWS nukeを使う経緯
会社でハンズオンセミナーを開催することに
ハンズオンセミナーやります!
30名ぐらい集客します
(参加者はAccount持っていない前提)
環境の準備・・・・・
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
Organizations APIを利用すればOK
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
Organizations SCPでOK
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
cloudformation stack setsでOK
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
AWS BudgetsでOK
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい) Account消せば良い?
Organizations連携のAccount削除は面倒
1. OrganizationsからAccountを切り離す
2. アカウント削除(rootで作業)
セミナーのたびに30個アカウントで
上記を手作業するのは人間業ではない
要件を整理
● AWSアカウントが30個必要
● IAMやOrganizations系の作業は制限したい
● 明らかに関係ないRegionは触れないようにしたい
● 利用開始時にIAM userを利用したい
(パスワードの複雑性も担保したい)
● 管理者用の設定は維持したい
● 大まかにコスト監視したい
● 利用終了したらclean upしたい
(次回に利用したい)
アカウント入替でなく resource全削除
-> AWS Nuke !
Nuke概要(準備)
「Prod」の文字列をを含まない Account Alias
(AccountIdだけだと間違えやすいためらしいです)
Nuke概要(config)
対象リージョン
絶対消したくないアカウント
(option)削除対象リソースや
対象外リソースを指定
削除対象アカウント
Nuke概要(実行時)
option無しの場合はdry runで実行される
削除対象リソースの一覧が表示される
--no-dry-runオプションを付けると削除が実行される
まとめてNukeするとき
Master Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
Switch Role & Nukeをloop
親アカウントからSwitch RoleしてNukeを実行する
実際に使ってみた
使ってみると
Master Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
使ってみると
Master Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
一括作業&管理
・Switch role
・cfn stack sets
・AWS SSO
消したくない
使ってみると
Master Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
一括作業&管理
・Switch role
・cfn stack sets
・AWS SSO
Nukeは全てを消しにかかる
(削除に利用するRoleすらも)
使ってみると
Master Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
ハンズオン
Account
一括作業&管理
・Switch role
・cfn stack sets
・AWS SSO
管理用リソースをSCPでdelete不可にして
Nukeで全リソース削除を実行
(Nukeのconfigに例外リソースを登録できるが
 Nuke以外でも削除させたくないためSCPを利用)
きれいに(消したいものだけ)全削除!
まとめ & 参考リンク
まとめ
● AWS nukeは全リソースを削除できる
 (対応リソースタイプを表示可能)
● 特定リソースのみ削除も可能
● 特定リソースのみ削除しないことも可能
● 細かいフィルタ指定も可能(例:リソース名、リージョン)
検証環境や繰返し利用したい環境に使うと便利!
参考リンク
● AWS Nuke
https://github.com/rebuy-de/aws-nuke
● 分かりやすいサイト
https://tech.askul.co.jp/entry/2020/11/17/120000

jaws aws-nuke