Amazon VPC に添付されたセキュリティグループを削除できないのはなぜですか?

最終更新日時: 2022 年 3 月 23 日

Amazon Virtual Private Cloud (Amazon VPC) のセキュリティグループを削除しようとすると、エラーが発生します。削除するにはどうすればよいですか?

簡単な説明

次の理由により、セキュリティグループを削除できないことがあります。

  • セキュリティグループがデフォルトのセキュリティグループである。
  • セキュリティグループが独自のルールまたは他のセキュリティグループのルールによって参照されている。
  • セキュリティグループが実行中または停止状態にあるインスタンスと関連付けられている。
  • セキュリティグループがネットワークインターフェイスに関連付けられている。
  • DeleteSecurityGroup オペレーションを実行する許可がない。

解決方法

セキュリティグループがデフォルトのセキュリティグループである

デフォルトのセキュリティグループを削除しようとすると、次のエラーが表示されます。

error: Client.CannotDelete

すべての VPC にはデフォルトのセキュリティグループがあります。インスタンスの開始時に別のセキュリティグループを指定しないと、デフォルトのセキュリティグループがインスタンスに自動的に関連付けられます。デフォルトのセキュリティグループは削除できません。ただし、デフォルトのセキュリティグループのルールは変更できます。詳細については、「VPC のデフォルトセキュリティグループ」を参照してください。

セキュリティグループが独自のルールまたは他のセキュリティグループのルールによって参照されている

セキュリティグループが独自のルールまたは別のセキュリティグループのルールによって参照されている場合、次のエラーが表示されます。

error: sg-A This security group has a rule that references sg-B and itself

セキュリティグループがあるセキュリティグループルールで参照されている場合、これを削除することはできません。セキュリティグループが独自のいずれかのルールで参照されている場合は、セキュリティグループを削除する前に、ルールを削除する必要があります。セキュリティグループが別のセキュリティグループのルールで参照されている場合は、その参照を削除する必要があります。セキュリティグループルールを変更するには、「セキュリティグループルールの操作」を参照してください。

たとえば、セキュリティグループ A (sg-A) には、セキュリティグループ B (sg-B) と自身を参照するルールがあるとします。これらのグループの 1 つを削除する場合は、まず次の操作を行う必要があります。

  • sg-B を削除するために、sg-B に関連付けられているルールを削除します。
  • sg-A を削除するために、自己参照ルールを削除します。

削除するセキュリティグループ (前の例では sg-B) に関連付けられているルールを削除するには、次の手順に従います。

1.    Amazon VPC コンソールを開きます。

2.    ナビゲーションペインで、[セキュリティグループ] を選択します。

3.    更新するセキュリティグループを選択します。

4.    ユースケースに応じて、[Actions] (アクション)、[Edit inbound rules] (インバウンドルールを編集)、または [Actions] (アクション)、[Edit outbound rules] (アウトバウンドルールを編集) を選択します。

5.    削除するルールの [Delete] (削除) を選択します。

6.    [Save rules] (ルールを保存) を選択します。

セキュリティグループは、ピアリング接続が確立されている別の Amazon VPC 内のセキュリティグループで参照することもできます。この場合、参照を削除するか、または VPC ピアリング接続を削除すると、セキュリティグループを削除できます。

別の Amazon VPC 内のセキュリティグループでセキュリティグループが参照されている場合は、以下の手順に従います。

1.    Amazon VPC コンソールを開きます。

2.    ナビゲーションペインで [Peering Connections] (ピアリング接続) を選択します。

3.    VPC ピア接続を選択し、[Actions] (アクション)、[Delete VPC Peering Connection] (VPC ピアリング接続を削除) の順に選択します。

4.    確認ダイアログボックスで [Yes, delete] (はい、削除します) を選択します。

注:DescribeSecurityGroupReferences API を使用して、削除するセキュリティグループを参照する VPC ピアリング接続の反対側の VPC を記述できます。

セキュリティグループが実行中または停止状態にあるインスタンスと関連付けられている

セキュリティグループが実行中または停止状態にあるインスタンスに割り当てられている場合、それを削除することはできません。セキュリティグループがインスタンスに割り当てられているかどうかを確認するには、次の手順を実行します。

1.    Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。

2.    ナビゲーションペインで、[インスタンス] を選択します。

3.    コンテンツペインの検索バーで、「クライアントフィルター」と入力します。

4.    ドロップダウンから [Instance state (client)] (インスタンスの状態 (クライアント)) を選択します。

5.    [Instance state (client): running] (インスタンスの状態 (クライアント): 実行中) を選択します。

6.    手順 3〜5 を繰り返します。次に、[Instance state (client): stopped] (インスタンスの状態 (クライアント): 停止) を選択します。

7.    フィルタされたリストで、[Security Group ID] (セキュリティグループ ID) または [Security Group Name] (セキュリティグループ名) を選択します。次に、セキュリティグループ ID またはセキュリティグループ名を選択します。セキュリティグループに割り当てられているすべてのインスタンスは、フィルタリングされたインスタンスリストに一覧に表示されます。

注: インスタンスに割り当てられているセキュリティグループを変更する場合は、「セキュリティグループの操作」を参照してください。

セキュリティグループがネットワークインターフェイスに関連付けられている

リクエスタが管理するネットワークインターフェイスに関連付けられている場合、セキュリティグループを削除できません。リクエスタが管理するネットワークインターフェイスは、 Application Load Balancer ノードなどの管理対象リソースに対して自動的に作成されます。AWS Lambda、Amazon Elastic File System (Amazon EFS)、FSx、Redis、Memcached、Amazon DynamoDB などのサービスとリソースには、常に Elastic Network Interface にアタッチされるセキュリティグループがあります。これらの Elastic Network Interface を削除またはデタッチするには、ネットワークインターフェイスが表すリソースを削除する必要があります。これが完了すると、AWS サービスは自動的にネットワークインターフェイスをデタッチして削除します。

このようなタイプのセキュリティグループを削除しようとする場合、他の AWS サービスによって管理されるリソースにインターフェイスが添付されていると、次のエラーが表示されることがあります。例えば、これらのサービスには、Elastic Load Balancing (ELB) や Lambda などが該当します。エラーメッセージの例を次に示します。

Error detaching network interface. eni-xxxxxxxx:Network interface 'eni-xxxxxxxx' is currently in use

これらのエラーを解決するには、次の操作を行います。

1.    Amazon EC2 コンソールを開きます。

2.    ナビゲーションペインで、[ネットワークインターフェイス] を選択します。

3.    デタッチまたは削除する Elastic Network Interface の Elastic Network Interface ID を検索します。

4.    Elastic Network Interfaceを選択して、[Details] (詳細) タブをクリックします。

5.    重要: [Description] (詳細) を確認して、どのリソースに Elastic Network Interface が接続されているかを確認します。

6.    対応する AWS のサービスを使用していない場合は、最初にそのサービスを削除します。VPC から自動的に Elastic Network Interface が削除されます。

セキュリティグループが VPC エンドポイントで使用されているネットワークインターフェイスに関連付けられている場合、そのセキュリティグループを削除できません。VPC エンドポイントで使用されているネットワークインターフェイスに関連付けられているセキュリティグループを削除しようとすると、次のようなエラーが表示されることがあります。

An error occurred (DependencyViolation) when calling the DeleteSecurityGroup operation: resource sg-xyz has a dependent object

セキュリティグループを削除するには、modify-interface-endpoint からセキュリティグループを削除するか、置き換えます。

1.    Amazon VPC コンソールを開きます。

2.    ナビゲーションペインで [Endpoints] (エンドポイント) を選択し、インターフェイスエンドポイントを選択します。

3.    [Actions] (アクション)、[Manage security groups] (セキュリティグループを管理) を選択します。

4.    必要に応じてセキュリティグループを選択または選択解除し、[Save] (保存) を選択します。

注: AWS Command Line Interface (AWS CLI) で次のコマンドを実行して、セキュリティグループ ID に基づいたセキュリティグループと関連付けられているネットワークインターフェイスを見つけます。コマンドの出力には、セキュリティグループに関連付けられているネットワークインターフェイスが表示されます。

aws ec2 describe-network-interfaces --filters Name=group-id,Values=<group-id> --region <region> --output json

例:

aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-07abcd9f0e12345495 --region us-east-1 --output json

コマンドの出力を確認します。次の例のように出力が空の場合、セキュリティグループに関連付けられているリソースはありません。

出力例

{

    "NetworkInterfaces": []

}

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

DeleteSecurityGroup オペレーションを実行する許可がない

次のエラーが表示された場合は、セキュリティグループを削除するための適切な許可をもっていない可能性があります。

Failed to delete security groups. An Unknown error happened". You are not authorized to perform "DeleteSecurityGroup" operation

1.    AWS CloudTrail ログで DeleteSecurityGroup API コールを確認します。ログに次の内容が表示された場合、このエラーは IAM ロールに関連付けられている許可に関連しています。

"errorMessage": You are not authorized to perform this operation” is seen in the Cloudtrail logs

2.    DeleteSecurityGroup アクションが AWS Identity and Access Management (IAM) ポリシーに追加されていることを確認します。

3.    社内で自社のセキュリティ制御ポリシー (SCP) に必要な変更を加え、ユーザーの許可を変更してください。マスターアカウントに SCP の変更を依頼しなければならない場合があります。

注: SCP は、メンバーアカウントの root ユーザーを含む、メンバーアカウントの IAM ユーザーとロールの許可を制限します。暗黙的または明示的に ([Deny] (拒否) を使用して) アカウントより上のレベルで許可がブロックされている場合、アカウント管理者がユーザーに対し、*/* 許可付きで AdministratorAccess IAM ポリシーを添付したとしても、影響を受けるアカウントのユーザーまたはロールはその許可を使用できません。

詳細については、「アクセス許可における SCP 効果」を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?