[アップデート] EC2 Auto Scaling グループの削除保護機能が追加され、IAM 条件キーでの強制削除制限もできるようになりました
いわさです。
EC2 Auto Scaling グループは誤って削除してしまうことがあります。
空の Auto Scaling グループの場合は無条件で削除できて、インスタンスがグループ内に存在している場合は強制削除オプションを使うことで削除できるという感じでした。
スケールイン中で 0 台になっており不要だと勘違いして Auto Scaling グループを削除してしまうとかたまに事故ることがあったのですが、今朝のアップデートでこの Auto Scaling 周りの削除保護周りの機能が追加されました。ついにか、という感じもする。
使ってみたので紹介します。
削除保護
削除保護機能はイメージしやすいですね。
他のリソースと同じように Auto Scaling 自体に削除保護というオプション設定が追加されています。
以下は Auto Scaling の作成画面です。

見てみると削除保護のON/OFFだけではなくてモードが用意されていますね。
Auto Scaling グループは空の場合は削除できて、インスタンスが実行中の場合は通常は削除に失敗して強制削除を指示している場合は削除できるという感じになっています。
今回のオプションでは常に削除から保護するか、強制削除からだけ保護するかを選べます。
Auto Scaling グループの削除保護に関するドキュメントも追加されていました。
すべての削除を防止する
「すべての削除を防止する」の挙動を確認してみましょう。

この設定がされている Auto Scaling グループを削除しようとした時、削除ダイアログで次のように表示されます。

そのまま確認して削除操作しても次のようにエラーとなって削除操作に失敗します。良いですね。

強制削除を防止する
続いて、「強制削除を防止する」の場合です。

この時、次のように強制削除を有効化が出来ませんでした。なるほどね!

ちなみに、削除保護されていない場合はここで強制削除するかどうかを選択できます。

autoscaling:ForceDelete 条件キー
今回のアップデートでは IAM ポリシーでautoscaling:ForceDelete条件キーが使えるようになりました。
先程の削除保護を使うことで指定した Auto Scaling グループの削除を保護することができます。
ただ、そもそも強制削除自体を防ぎたいが空のグループ削除であれば許容したいみたいなガードレール設定を行いたい場合は IAM 条件キーを使うことができます。
次のようにautoscaling:ForceDeleteがtrueの場合はautoscaling:DeleteAutoScalingGroupアクションを拒否するポリシーを追加してみましょう。

AdministratorAccess マネージドポリシーがアタッチされているユーザー/ロールですが、この時強制削除をしようとするとどうなるでしょうか。
削除保護されていない Auto Scaling グループを削除してみます。

削除に失敗しましたね。良いんじゃないか。

ちなみに拒否と許可どちらが優先されるかとかそのあたりはこのあたりの記事を見ましょう。例のお面の人が書いた記事です。
さいごに
本日は EC2 Auto Scaling グループの削除保護機能が追加され、IAM 条件キーでの強制削除制限もできるようになったので使ってみました。
個別の Auto Scaling グループを保護したい場合は削除保護機能が有効に使えそうです。
また組織として強制削除だけ防止するようなガードレールを作りたい場合は IAM 条件キーを使うのも良いですね。
Auto Scaling グループの運用が安全になるアップデートなのでぜひ取り入れてみてください。






