Amazon VPC にアタッチされているセキュリティグループを削除できない理由を知りたいです。

所要時間3分
0

Amazon Virtual Private Cloud (Amazon VPC) のセキュリティグループを削除する際、エラーが発生します。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

問題のセキュリティグループがデフォルトのセキュリティグループではないことを確認する

各 Amazon VPC にはデフォルトのセキュリティグループがあります。新しい Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動し、デフォルトのセキュリティグループを指定しなかった場合、AWS はデフォルトのセキュリティグループを自動的に関連付けます。

デフォルトのセキュリティグループを削除しようとした場合、次のエラーが発生します。

「error: Client.CannotDelete」

デフォルトのセキュリティグループは削除できませんが、デフォルトのセキュリティグループのルールを変更することはできます

他のセキュリティグループのルールが、問題のセキュリティグループを参照していないことを確認する

セキュリティグループを削除する前に、次の手順を実行してセキュリティグループのルールを削除します。

  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで [セキュリティグループ] を選択します。
  3. 更新するセキュリティグループを選択します。
  4. [アクション] [インバウンドルールを編集] の順に選択するか、[アクション][アウトバウンドルールを編集] の順に選択します。
  5. 削除するルールで [削除] を選択します。
  6. **[ルールを保存]**を選択します。

別のセキュリティグループのルールが参照しているセキュリティグループを削除しようとすると、次のエラーが発生します。

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

削除するセキュリティグループを参照している、他のセキュリティグループのルールをすべて削除します。

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

注: DescribeSecurityGroupReferences API を使用して、セキュリティグループを参照している Amazon VPC ピアリング接続のもう一方の端を記述します。

AWS リソースに関連付けられているセキュリティグループの関連付けを解除する

削除するセキュリティグループが AWS リソースに関連付けられている場合は、関連付けを解除します。Amazon EC2 インスタンスなどの AWS リソースや、Amazon API Gateway の VPC リンクに関連付けられているセキュリティグループは、削除できません。

重要: VPC リンクを作成した後は、そのセキュリティグループまたはサブネットを変更することはできません。

次のエラーが表示される場合、そのセキュリティグループは AWS リソースに関連付けられています。

「Some security groups can't be deleted.The following security groups can't be deleted.These security groups are the default security groups, referenced by other security groups, or are associated with instances or network interfaces」

セキュリティグループを使用しているリソースを特定する方法については、「Amazon EC2 のセキュリティグループに関連付けられているリソースを特定する方法を教えてください」を参照してください。

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

リクエスタマネージドネットワークインターフェイスに関連付けられたセキュリティグループは、削除できません。

ネットワークインターフェイスを削除またはデタッチする方法については、「ネットワークインターフェイスを削除する」を参照してください。

Amazon VPC エンドポイントが使用するネットワークインターフェースに関連付けられているセキュリティグループは、削除できません。

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

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

インターフェイスエンドポイントからセキュリティグループを削除または交換するには、次の手順を実行します:

  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで [エンドポイント] を選択します。
  3. インターフェイスエンドポイントを選択し、[アクション][セキュリティグループを管理] の順に選択します。
  4. セキュリティグループを選択または選択解除し、[保存] を選択します。

describe-network-interfaces AWS CLI コマンドを実行し、セキュリティグループに関連付けられているネットワークインターフェイスを特定します。

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

注: 実際のものでそれぞれ、example-group-id をセキュリティグループの ID に、example-region を AWS リージョンに置き換えます。

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

コマンド出力の例

{
    "NetworkInterfaces": []
}

Amazon VPC Lattice Service ネットワーク内のセキュリティグループのトラブルシューティング

Amazon VPC Lattice Service ネットワークの VPC アソシエーションにアタッチしたセキュリティグループを削除しようとすると、次のエラーが表示されます。

「errorCode": "Client.DependencyViolation」

注: エラーイベントの名前を特定できない場合は、CloudTrail ログに DeleteSecurityGroup イベントがないか確認してください。

このエラーをトラブルシューティングするには、次の手順を実行します。

  1. Amazon VPC コンソールを開きます。
  2. VPC サービスに移動します。
  3. 左側のナビゲーションペインで [サービスネットワーク] を選択します。
  4. リストからサービスネットワークを選択します。
  5. [VPC の関連付け] タブを選択し、snva-123b567891t1112a のような形式のアソシエーション ID を持つ VPC 関連付けがないか確認します。
  6. セキュリティグループに関連付けられている VPC 関連付け ID を選択します。
  7. セキュリティグループセクションで [編集] を選択し、該当するセキュリティグループを削除します。

DeleteSecurityGroup を実行するためのアクセス許可を設定する

DeleteSecurityGroup API を使用するための、適切な AWS Identity and Access Management (IAM) アクセス許可を設定します。

重要: 削除するセキュリティグループがインスタンスに関連付けられているか、別のセキュリティグループによって参照されている場合、DeleteSecurityGroup API は失敗します。その場合、操作は失敗し、DependencyViolation エラーが発生します。

適切なアクセス許可が欠けている場合、セキュリティグループを削除しようとすると、次のエラーが発生します。

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

DeleteSecurityGroup 操作のエラーをトラブルシューティングするには、次の手順を実行します。

  1. AWS CloudTrail コンソールを開きます。
  2. ナビゲーションペインで [イベント履歴] を選択します。
  3. [ルックアップ属性] ドロップダウンリストで [イベント名] を選択します。
  4. 検索ボックスに DeleteSecurityGroup と入力すると、操作の API コールが表示されます。
    注: [イベント履歴] リストに「You are not authorized to perform this operation」というエラーメッセージが表示される場合、そのエラーは IAM アクセス許可に関連していることを示しています。
  5. DeleteSecurityGroup アクションが IAM ユーザーまたはロールのポリシーに追加されていることを確認します。
    詳細については、「IAM ID のアクセス許可の追加および削除」を参照してください。
  6. AWS Organizations で、組織のサービスコントロールポリシー (SCP) を変更します。その後、IAM のユーザーまたはロールのアクセス許可を変更します。
    注: プライマリ AWS アカウントの所有者ではない場合は、プライマリアカウントのオーナーに SCP の変更を依頼してください。SCP の詳細については、「アクセス許可に対する SCP の効果」を参照してください。

共有 VPC 内のセキュリティグループを確認する

所有していない共有 Amazon VPC 内のセキュリティグループを削除しようとすると、次のエラーが発生します。

「You are not authorized to perform DeleteSecurityGroup operation.A subnet in this vpc is shared but the provided object is not owned by you.」

DeleteSecurityGroup 操作のエラーをトラブルシューティングするには、次の手順を実行します。

  1. AWS CloudTrail コンソールを開きます。
  2. ナビゲーションペインで [イベント履歴] を選択します。
  3. [ルックアップ属性] ドロップダウンリストで、[イベント名] を選択します。
  4. 検索ボックスに「DeleteSecurityGroup」と入力すると、操作の API 呼び出しが表示されます。
  5. 自分のアカウントがセキュリティグループを所有していないことを確認します。組織内の別のアカウントがセキュリティグループを所有している場合は、プライマリオーナーにセキュリティグループの削除を依頼してください。

関連情報

別の AWS アカウントと共有している VPC を削除する方法を教えてください

VPC Lattice サービスネットワークの関連付けを管理する

コメントはありません

関連するコンテンツ