【问题标题】:Can't detach network interfaces无法分离网络接口
【发布时间】:2019-11-16 10:07:50
【问题描述】:

我完成了 AWS misfits 教程,我认为清理就像删除 Cloud Formation 堆栈一样简单。但是,项目未能删除,因此我正在尝试手动清理它们以帮助删除 Cloud Formation 堆栈。

我在尝试分离网络接口时不断收到错误消息(我已登录到 root 帐户):

分离网络接口时出错:

eni-0047gfhfgh8ab0e: You are not allowed to manage 'ela-attach' attachments.
eni-0f4a46hgfha757e: You are not allowed to manage 'ela-attach' attachments.

如果不删除这些,我将无法删除我的 VPC。

由于以下原因,整个堆栈未能删除: 未能删除以下资源:[InternetGateway、PublicSubnetTwo、VPC、GatewayAttachement、PublicSubnetOne]。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-vpc


    【解决方案1】:

    同时删除与 VPC 关联的所有 Global Accelerator 实例。

    【讨论】:

      【解决方案2】:

      检查 VPC 中是否还有任何 lambda 函数/db 实例/ec2 实例-> 任何子网。

      先删除该特定实例,然后网络接口将自动删除。

      要识别实例,您可以按照以下步骤操作:

      1.在 AWS 网络接口控制台中搜索网络接口。 2.点击打开详细视图,然后检查接口类型并从那里删除提到的资源。

      【讨论】:

        【解决方案3】:

        错误:无法分离网络接口。 API 错误:“您无权访问指定资源。”

        解决方案:为了找到仍在使用弹性网络接口的资源,请通过单击网络接口 ID 拉出 ENI 详细信息,并使用这两个字段:

        • 描述:应该指出哪个服务正在使用 ENI(即 ECS、ELB、Lambda 等),但您可能需要在附件 ARN 中使用一些线索。
        • 安全组:应该帮助您关联与其关联的特定集群。

        一旦我删除了与 ENI 关联的 ECS 集群,ENI 资源就会自动消失。

        【讨论】:

          【解决方案4】:

          如果您在 VPC 中使用 Lambda 函数。

          这是由于旧的 Lambda 版本仍然是指 ENI 造成的。

          试试下面看看是不是这种情况:

          aws lambda list-versions-by-function --function-name FUNCTIONNAME | jq -r '.Versions | .[] | [.LastModified, .Version, .VpcConfig.VpcId] | @tsv' | sort
          

          【讨论】:

            【解决方案5】:

            我遇到了同样的问题,这给了我以下信息:

            这可能是因为正在使用的服务仍在使用网络接口。您可以尝试以下一些things

            • 从 API 网关中移除未使用的 VPC 链接
            • 删除未使用的 VPC Endpoint 服务
            • 删除未使用的 NAT 网关
            • 移除未使用的 ECS/EKS 集群
            • 删除未使用的负载平衡器
            • 删除未使用的 EFS 挂载

            如果这没有帮助,则表明底层操作系统有问题/卡住了,您应该等待它自行解决或报告它。删除 lambda 函数后,我有一个由 Lambda 函数部署的 ENI,ENI 卡住了。一段时间后,我能够分离 ENI。

            【讨论】:

            • 从 API 网关中删除未使用的 VPC 链接对我有用
            • 有依赖负载均衡器的消息可能不清楚。
            • 对我来说,它是 SageMaker 创建的 EFS。
            • 对我来说,这是一个需要删除的 RDS Postgres DB。
            • 您还应该查看 Lambda 函数。我的 NIC 与 Lambda VPC ENI-xxxxx 相关联。我删除了 Lambda 函数,不再有关联。 NIC 消失了,我能够删除 VPC。
            【解决方案6】:

            就我而言,我的 EFS 挂载阻止了我的子网被删除。我的解决方案是访问 AWS 管理控制台,搜索 EFS,然后删除相应的挂载。之后我就可以删除子网和 VPC。

            【讨论】:

              【解决方案7】:

              就我而言,我有一个 DataSync 实例 - 当我删除它时,我可以删除这些资源

              【讨论】:

                【解决方案8】:

                AWS 提供了这个 bash 脚本来帮助找出依赖关系:

                #!/bin/bash
                vpc="vpc-xxxxxxxxxxxxx" 
                aws ec2 describe-internet-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep InternetGatewayId
                aws ec2 describe-subnets --filters 'Name=vpc-id,Values='$vpc | grep SubnetId
                aws ec2 describe-route-tables --filters 'Name=vpc-id,Values='$vpc | grep RouteTableId
                aws ec2 describe-network-acls --filters 'Name=vpc-id,Values='$vpc | grep NetworkAclId
                aws ec2 describe-vpc-peering-connections --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId
                aws ec2 describe-vpc-endpoints --filters 'Name=vpc-id,Values='$vpc | grep VpcEndpointId
                aws ec2 describe-nat-gateways --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId
                aws ec2 describe-security-groups --filters 'Name=vpc-id,Values='$vpc | grep GroupId
                aws ec2 describe-instances --filters 'Name=vpc-id,Values='$vpc | grep InstanceId
                aws ec2 describe-vpn-connections --filters 'Name=vpc-id,Values='$vpc | grep VpnConnectionId
                aws ec2 describe-vpn-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep VpnGatewayId
                aws ec2 describe-network-interfaces --filters 'Name=vpc-id,Values='$vpc | grep NetworkInterfaceId
                

                我的问题是中转网关附件,我可以在某个时候解决。

                来源:https://aws.amazon.com/premiumsupport/knowledge-center/troubleshoot-dependency-error-delete-vpc/

                【讨论】:

                • 个人说明:如果您想在调用脚本后将 VPC ID 作为字符串参数提供,请使用 vpc="${1}"。更容易多次运行它
                【解决方案9】:
                1. 修改 VPC Endpoint Service 以拒绝 VPC Endpoint(取消选择 需要接受端点)https://docs.aws.amazon.com/vpc/latest/userguide/modify-endpoint-service.html
                2. 删除 VPC 终端节点服务
                3. 继续删除其他资源或重试中的堆栈删除任务 Cloudformation。

                VPC Endpoint Service 删除受到不再存在的 VPC Endpoint 的限制。

                【讨论】:

                  【解决方案10】:

                  如果删除网络接口时发生错误,请等待相应页面上的 NAT 网关和 Internet 网关条目删除。否则在 vpc 中删除与服务相关的公共或静态 IP

                  【讨论】:

                    【解决方案11】:

                    我的问题是我的负载均衡器是用“删除保护”创建的 启用。我登录到 AWS 控制台,找到我的负载均衡器并将其属性设置为“删除保护”为 false。这使我可以删除负载均衡器和其他所有内容。

                    【讨论】:

                      【解决方案12】:

                      在尝试删除对我有用的网络接口之后,尝试验证您是否在 ENI 上关联了 EFS 挂载目标并将其删除。

                      【讨论】:

                        【解决方案13】:

                        我有同样的问题。根本问题是它不会让你删除任何东西,因为一切都依赖于它。解决方案是在每种类型的资源列表下方向下滚动并找到正确的选项卡以编辑/删除与其他资源的连接。一旦这些都消失了,您将能够删除页面顶部的资源。我不确定哪个中断最终使 cloudformation 成功删除,但只需通过 VPC 仪表板并点击其中的每一个即可解决问题。

                        【讨论】:

                          【解决方案14】:

                          我也有同样的问题。对我来说,我必须先删除与我的 ELB 关联的 Endpoint Service,然后才能开始摆脱已设置的网络接口。

                          【讨论】:

                            猜你喜欢
                            • 2020-05-31
                            • 2021-05-10
                            • 2018-12-06
                            • 1970-01-01
                            • 1970-01-01
                            • 2017-02-09
                            • 1970-01-01
                            • 1970-01-01
                            • 2016-01-31
                            相关资源
                            最近更新 更多