试图删除 VPC 和网络接口时发生

我试图删除 AWS VPC (一个非默认的)。我得到一个错误: “我们不能删除下面的 VPC (VPC-xxxxxxx (xx.xx.xx.x/16)) 网络接口‘ eni-xxxxxx’正在使用中。(服务: AmazonEC2; 状态代码: 400; 错误代码: InvalidParameter terValue; 请求 ID: xxxxxx-dd86-47c8-98cd-xxxxxxxxxxxx)”。

当我尝试删除相关的网络接口时,我得到错误“ eni-xxxxxxxx: 您没有访问指定资源的权限。”

存在与 NI (网络接口)相关联的安全组。 有与 NI 相关联的子网。 没有 EC2实例-所有实例都已终止。 没有 VPC 端点。 没有 RDS db、 db 安全组或子网。

对于 EC2 SG (安全组) ,我在尝试删除(甚至是针对非默认 VPC 的非默认 SG)时获得权限拒绝错误消息。该 SG 描述了“ AWS 为 d-xxxxxxxxxxx 目录控制器创建的安全组”。

对于子网,我无法删除它们,因为它们与上述 NI 相关联。

有人能帮忙吗?我有一个免费的层帐户,因此,甚至没有技术支持或都不能张贴新的线程在 aws 论坛(得到错误消息-您的帐户还没有准备好张贴消息。请稍后再试)。我担心这是因为我有一个免费的层级帐户。

81251 次浏览

检查两件事。

  • 如果您有一个 VPC 弹性 IP 地址,您在 VPC 中创建您正在尝试删除。
  • 检查是否在 VPC 中创建了 AWS ELB。

删除上述两个资源,如果存在,然后你将能够删除 VPC。

正如 @ karimtabet所说,我无法删除的 VPC 仍然被分配给一个活动的 RDS 实例。删除这个 RDS 实例后,我能够删除 VPC。

该网络接口可以连接到一个安全组,然后再连接到另一个 Amazon 产品,如 ElastiCache (或任何东西)。它连接着一些东西,而这些东西可能连接着另一些东西。

检查是否有任何打开版本控制或跨域复制的 EFS 实例或 S3存储桶(这是我最近发现的一个)。

在我的例子中,我必须首先在 EC2 section中分离和删除2个东西(与 VPC 在同一区域) :

  1. 网络与安全-> 弹性 IP。删除弹性 IP 与您的 VPC
  2. 网络与安全-> 网络接口。首先分离你 VPC 的网络接口(这需要大约一分钟)。然后删除。

现在试着删除 VPC。

正在运行的 ECS 任务可能是一个问题,请尝试停止/删除相同的任务。 Https://forums.aws.amazon.com/thread.jspa?threadid=114301

我通过删除连接到 ENI 的活动负载平衡器来解决这个问题。 您可以在 EC2 > 负载平衡 > 负载平衡器上检查活动负载平衡器

You were right..It was ECS issue in my case. Not letting me delete my ENIs saying I dont have the permissions. I had already deregistered my ECS task definition but still It was not letting me delete resources like VPC, ENIs created by ECS.

我必须使用与前一个定义版本相同的资源更新 ECS 下的任务定义版本,然后删除那个新服务,然后删除集群。

使用集群,它删除了所有资源,如 VPC,ENI,它不让我删除早些时候。

I then dergistered second version of task definition. I had two inactive tasks definitions for a monent and then one task definitions disappeared..now only one is there in inactive state.

我只能通过 de api 删除 eni:

aws ec2 delete-network-interface --network-interface-id eni-XXXXXXX

在我的例子中,我使用 Terraform 创建了一个 ECS 集群。但无法用 terraform destroy命令清理干净。

在 Web 控制台中,我总是得到错误 Network interface is currently in use

我已经忘记了我有一个 RDS 实例,它仍然连接到 VPC。删除之后,网络接口自动删除。

有一个工具可以帮助您确定哪个 AWS 资源与 ENI 关联。如何使用本文档: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-eni-find-delete/

因此,您应该检查网络接口的使用情况,如果它们没有出现,就意味着您必须检查计算和负载平衡堆栈。

对我来说,这是一个 lambda 测试函数,它使用了这个接口,但由于某种原因没有出现在 networkInterface 中。一定要检查你的 Lambda 函数。

我没有任何实例。网络接口仅与子网、安全组和 VPC 相关。我是这样解决的:

  1. 删除我的负载平衡器
  2. 删除网络接口
  3. 删除 VPC

在我的例子中,首先我们检查任何可用的负载平衡器,如果它是,那么首先我们必须删除负载平衡器,然后我们删除现有的 vpc

你必须采取自下而上的方法。

  1. 删除在子网上工作的服务(Redshift 集群,RDS)
  2. 检查 Glue,Lambda 等中的作业,如果不需要就删除它们
  3. 从 NAT 网关释放 IP 地址
  4. 分离/删除 NAT 和 Internet 网关
  5. 分离并删除子网
  6. 删除 VPC

我通过删除 ElastiCache 资源修复了这个问题

为了能够删除安全组(SG)及其网络接口(NI) ,我必须:

  • 删除 SG 的入站 + 出站规则
  • 等待5-10分钟,NIs 将从“正在使用”转变为“可用”
  • 删除 NI
  • 删除 SG

一定要检查你的 lambda 版本。我已经使用无服务器框架部署了我的应用程序,并在某个时间点更改了部署的 VPC。因此,我必须删除所有以前版本的 lambda 函数,以便能够删除旧的 VPC。

您可以在您的 lambda 函数的“ version”选项卡下的 AWS 控制台中执行此操作。

如果它是由 云阵创建的,那么删除 CloudFormentStack 可能需要帮助您删除 VPC。

这种情况最近也发生在我身上,@ Pierre-Yves Savard的回答帮助我理解了这一点。让我解释一下为什么会这样。

当您使用 Cloudform 脚本创建了整个堆栈时,我们将其称为 服务器-网络-堆栈1。尽管后来您从 AWS 控制台手动创建了一些资源(例如 RDS 数据库) ,并将它们放在 服务器-网络-堆栈1云形成脚本以前创建的 Subnet/VPC 中。

现在,您的 服务器-网络-堆栈1 Cloudform 堆栈不知道关于 RDS 创建的任何信息,因为它是手动创建的。因此,当您试图删除 服务器-网络-堆栈1时,它会给出一个错误,这意味着 "there is another resource which is dependent on the VPC/Subnet ( indirectly Network Interface ), and it is not declared inside my script"

因此,我建议您将所有资源声明都编写在 Cloudform 中,即使您只创建一次,并且不会在整个项目生命周期中更新它们。否则,您的整个团队必须记住哪些资源是用脚本创建的,哪些不是。

如果配置了任何端点(当前位于 AWS 控制台的 VPC 部分) ,则必须首先删除这些端点。

在我的例子中,我删除了全局加速器。搜索全局加速器服务并删除它。(您需要安装和配置 AWS CLI)对不起,我的英语

您可以使用此脚本查找您的资源(nano description _ vpc。Sh) : 当您找到它们时,手动一个一个删除它们: (您需要安装和配置 AWS CLI)对不起,我的英语: (

# !/bin/bash Vpc = “ vpc-XXXXXXXXXXXXX” Awsec2描述-因特网-网关——过滤器‘ Name = attachment.vpc-id,Value =’$vpc | grep InternetGatewayId Awsec2描述-子网——过滤器‘ Name = vpc-id,Value =’$vpc | grep SubnetId Awsec2描述路由表——过滤器‘ Name = vpc-id,Value =’$vpc | grep RouteTableId Awsec2描述-network-acls ——过滤器‘ Name = vpc-id,Value =’$vpc | grep NetworkAclId Awsec2描述-vpc-peeringConnectionId ——过滤器‘ Name = requester-vpc-info. vpc-id,Value =’$vpc | grep VpcPeeringConnectionId Awsec2描述-vpc-endpoints ——过滤器‘ Name = vpc-id,Value =’$vpc | grep VpcEndpointId Awsec2描述-nat-gateways —— filter‘ Name = vpc-id,Value =’$vpc | grep NatGatewayId Awsec2描述-security-groups ——过滤器‘ Name = vpc-id,Value =’$vpc | grep GroupId Awsec2描述-实例——过滤器‘ Name = vpc-id,Value =’$vpc | grep InstanceId Awsec2描述-vpn- 网关——过滤器‘ Name = attachment.vpc-id,Value =’$vpc | grep VpnGatewayId Awsec2描述-network-interface ——过滤器‘ Name = vpc-id,Value =’$vpc | grep NetworkInterfaceId

Region = “ yy-yyyy-y” Awsec2描述-vpc-peering-connect —— region $region ——过滤器‘ Name = requester-vpc-info. vpc-id,Value =’$vpc | grep VpcPeeringCo > Awsec2描述-nat-gateways —— region $region —— filter‘ Name = vpc-id,Value =’$vpc | grep NatGatewayId Awsec2描述-实例——区域 $区域——过滤器‘ Name = vpc-id,Value =’$vpc | grep InstanceId Awsec2描述-vpn- 网关—— region $region ——过滤器‘ Name = attachment.vpc-id,Value =’$vpc | grep VpnGatewayId Awsec2描述-本地-网关-路由-表-vpc-关联——区域 $region ——过滤器 Name = vpc-id,Value = $vpc | grep LocalGatewayRo >