Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
为什么我无法删除附加到 Amazon VPC 的安全组?
我在尝试删除 Amazon Virtual Private Cloud(Amazon VPC)的安全组时收到错误。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新版本的 AWS CLI。
当您尝试删除安全组时,可能会因为以下原因收到错误。
安全组是默认安全组
所有 Amazon VPC 都有一个默认安全组。如果您未指定其他安全组,默认安全组会自动与新启动的 Amazon Elastic Compute Cloud (Amazon EC2) 实例关联。
当您尝试删除默认安全组时,您会收到以下错误:
“error: Client.CannotDelete”
您无法删除默认安全组。但可以更改默认安全组的规则。有关更多信息,请参阅 VPC 的默认安全组。
安全组规则引用自己的安全组,或有另一个安全组的规则在引用该安全组
如果安全组自己的规则在引用该安全组,您可能会收到错误。要解决此问题,在删除安全组之前删除该规则。
要删除引用该安全组的规则,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择安全组。
- 选择要更新的安全组。
- 选择操作、编辑入站规则,或选择操作、编辑出站规则。
- 为要删除的规则选择删除。
- 选择保存规则。
有关安全组规则更新的更多信息,请参阅安全组规则。
当您尝试删除被其他安全组的规则引用的安全组时,您会收到以下错误:
“调用 DeleteSecurityGroup 操作时出现错误 (DependencyViolation):资源 sg-xyz 具有依赖的对象”
如果有另一个安全组的规则在引用您要删除的安全组,应在删除安全组之前删除该规则。
另一个建立了对等连接的 Amazon VPC 中的安全组可能在引用您要删除的安全组。在删除安全组之前,应删除该规则或删除 Amazon VPC 对等连接。
**注意:**使用 DescribeSecurityGroupReferences API 来描述引用安全组的 Amazon VPC 对等连接的另一端。
安全组与 AWS 资源关联
您无法删除与 AWS 资源关联的安全组,如 Amazon EC2 实例或 Amazon API Gateway VPC 链接。
您会收到以下错误:
“有些安全组无法删除。以下安全组无法删除。这些安全组是默认安全组,已由其他安全组引用,或与实例或网络接口关联。”
要确定哪些资源在使用安全组,请参阅如何查找与 Amazon EC2 安全组关联的资源?
重要信息:创建 VPC 链接后,您无法更改其安全组或子网。
要更改分配给实例的安全组,请参阅使用安全组。
安全组与网络接口关联
您无法删除与请求者托管的网络接口关联的安全组。请求者托管的网络接口是为托管资源(如应用程序负载均衡器节点)自动创建的。有些 AWS 服务和资源具有始终会附加到弹性网络接口的安全组。例如,AWS Lambda、Amazon FSx、Amazon ElastiCache for Redis 和 ElastiCache for Memcached。
要删除或分离网络接口,请参阅删除网络接口。
您无法删除与用于 Amazon VPC 端点的网络接口关联的安全组。
当您尝试删除安全组时,会收到以下错误:
“调用 DeleteSecurityGroup 操作时出现错误 (DependencyViolation):资源 sg-xyz 具有依赖的对象”
要从接口端点删除或替换安全组,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择端点。
- 选择接口端点,然后依次选择操作、管理安全组。
- 选择或清除相关安全组,然后选择保存。
运行 AWS CLI 命令 describe-network-interfaces 查找与安全组关联的网络接口。将 <group-id> 替换为您的安全组 ID,将 <region> 替换为您的 AWS 区域:
aws ec2 describe-network-interfaces --filters Name=group-id,Values=<group-id> --region <region> --output json
查看命令输出。如果输出为空,则表示没有资源与安全组关联。
命令输出示例:
{ "NetworkInterfaces": [] }
您无权执行 DeleteSecurityGroup 操作
您必须设置适当的 AWS Identity and Access Management (IAM) 权限,才能使用 DeleteSecurityGroup API。
**重要信息:**当要删除的安全组与某个实例关联或在另一个安全组中被引用时,DeleteSecurityGroup API 将失败。在这些情况下,操作会失败并显示 DependencyViolation 错误。
当您尝试删除安全组,但没有正确的权限时,您会收到以下错误:
“无法删除安全组。发生未知错误。您无权执行‘DeleteSecurityGroup’操作”
要解决 DeleteSecurityGroup 操作错误,请完成以下步骤:
- 打开 AWS CloudTrail 控制台。
- 在导航窗格中,选择事件历史记录。
- 在查找属性下拉列表中,选择事件名称。
- 在搜索框中,输入 DeleteSecurityGroup 查看操作的 API 调用。
- 事件历史记录列表中出现以下错误消息,表明错误与 IAM 权限有关:
“您无权执行此操作。” - 请检查是否已将 DeleteSecurityGroup 操作添加到删除操作的用户或角色的必要 AWS IAM 策略。
有关更多信息,请参阅添加和删除 IAM 身份权限。 - 在 AWS Organizations 中,更改您的组织的服务控制策略 (SCP)。然后,更改 IAM 用户或角色的权限。
**注意:**如果您不是主账户所有者,请让主账户所有者更改 SCP。
有关 SCP 的更多信息,请参阅 SCP 对权限的影响。
用户无法删除 VPC 所有者创建的安全组
当您尝试删除不归您所有的共享 Amazon VPC 中的安全组时,会收到以下错误:
“您无权执行‘DeleteSecurityGroup’操作。此 VPC 中的子网是共享子网,所提供的对象不归您所有。”
要解决 DeleteSecurityGroup 操作错误,请完成以下步骤:
- 打开 AWS CloudTrail 控制台。
- 在导航窗格中,选择事件历史记录。
- 在查找属性下拉列表中,选择事件名称。
- 在搜索框中,输入 DeleteSecurityGroup 查看操作的 API 调用。
- 确认您的账户不是该安全组的所有者。如果您组织中的另一个账户是该安全组的所有者,请让主所有者来删除安全组。
相关信息

相关内容
- AWS 官方已更新 9 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前