用 aws-nuke 清理 AWS 服務

2018-11-04 AWS

最近收到單位來的需求是 AWS 帳號不使用了要回收,可是要移除帳號其實還是蠻麻煩的,不如把裡面的資源砍一砍還可以給下一個單位進駐使用,要移除資源通常直接看 Billing 出帳的資訊最準,可是這代表又要被 AWS 賺一個月,但是又不想手動進去一個一個看 …

 

身為工程師常常遇到一些難題,為了不要做蠢事就只好花一些時間去找辦法 …

 

把關鍵字餵狗 (Google) 之後發現 nuke 可以找到許多關於 AWS cleaning up 的工具,而當中 aws-nuke 算是比較堪用的工具,所以就拿他來紀錄使用方式。

 

安裝

可以到 aws-nuke 的 release 去載最新版本,這篇文章是用 v2.6.0

順便把 command 的名稱改為 aws-nuke。

 

使用方法

awk-nuke 設定檔是 yaml 格式,參考範例:

  • regions:要掃的 region 範圍,比較特別的是 global,像 IAM 這類型的服務為 global。
  • account-blacklist:保護在這個列表的帳號不被刪除,即使沒有也要填上預設值 …

The config file contains a blacklist field. If the Account ID of the account you want to nuke is part of this blacklist, aws-nuke will abort. It is recommended, that you add every production account to this blacklist.

To ensure you don’t just ignore the blacklisting feature, the blacklist must contain at least one Account ID.

  • resource-types:沒有在範例裡,預設是掃 aws-nuke 支援的所有 resource,但也可以選擇部分 resource
  • accounts:用來 filter 某些資源不被刪除,像是 admin 或 Default VPC 之類的。

 

aws-nuke 支援 –access-key-id 的方式塞 credentials,或者 session token / profile 方式,這邊示範用 profile 的方式。

 

確認要刪除的資源沒問題就加上 --no-dry-run  再執行一次真的進行移除資源

 

已知問題

  • IAM User 有 MFA 會刪不掉。
  • S3 Bucket 若有 Bucket Policy 則沒有權限移除,必須手動刪掉 Bucket Policy。
  • 若有保留 Default VPC,則會 dependency Route table / Subnet / DHCP Option Sets 無法刪除

 

 

aws-nuke 其實還是存在許多 bug,但相較起來算是比較堪用的工具,不用手動就是爽 …

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: