SecurityGroupsを削除できない

問題とその背景

検証用にEFSを作成してEC2インスタンスと接続させました。
その際、nfsプロトコル用のセキュリティグループを自動で作成してアタッチするオプションを有効化していたため、以下のdefaultを除く、2つのセキュリティグループが作成されていました。

file

検証が済んだため、セキュリティグループを削除しようとしたところ、以下の用なエラーメッセージが表示され、できませんでした。

file

errorメッセージ

Some security groups can’t be deleted
The following security groups can’t be deleted. They are either default security groups, referenced by other security groups, or they are associated with instances or network interfaces.

「EFSもEC2インスタンスも削除していたため、関連付けられているリソースはないはず。なのになぜ…」

というわけで、今日はこのことについて記事を書こうと思います。

結論ファースト

原因

一方のセキュリティグループが他方のセキュリティグループをソース / デスティネーションとして指定・参照していることが原因でした。

以下はそれぞれのセキュリティグループをルールのキャプチャです。

  1. EC2インスタンスに関連付けられるセキュリティグループ
    アウトバウンドルールを確認すると、デスティネーションにセキュリティグループIDが指定・参照されていることが分かります。
    file
  2. EFSに関連付けられるセキュリティグループ
    インバウンドルールを確認すると、ソースにセキュリティグループIDが指定・参照されていることが分かります。
    file

つまり、相互参照していたため、削除ができなかったということですね。

解決法

この場合、セキュリティグループを削除する前に、参照しているルールを削除して更新してあげればよいです。(画像省略)

おわりに

今回はリソースを削除しているにもかかわらず、セキュリティグループを削除できないという問題について記事を書きました。
自分でセキュリティグループのルールを作っていれば気づきそうなものですが、そうではなかったためすぐには考えが及びませんでした。
AWSはデフォルトで様々な設定を簡単に行ってくれて便利な反面、ついその便利さにかまけて詳細の確認と把握を怠り、後で予期せぬ問題に直面することが少なくないのかなと思います。
とはいえ、予めすべてを把握することは至難であると思いますので、検証していく過程でこうした点を1つずつ丁寧に洗い出していくことが大切なのかと思いました。

ちなみに、今回はエラーメッセージ「Some security groups can’t be deleted」を re:Post で検索すると対応法が書かれてありました。
こうしたページは非常にありがたいですね。
積極的に活用したいと思います。

参考: re:Post Amazon VPC にアタッチされているセキュリティグループを削除できないのはなぜですか?
https://repost.aws/ja/knowledge-center/troubleshoot-delete-vpc-sg

Last modified: 2024-01-03

Author