Amazon EC2 不允许我删除安全组,并抱怨该组仍有依赖项。我如何才能找到这些依赖项?
aws ec2 describe-security-groups 没有说。
答案1
将安全组 ID 粘贴到 EC2 的“网络接口”部分。这将查找 EC2、EB、RDS、ELB 中的用法。
命令行:aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
答案2
在 AWS EC2 控制台中执行此操作的最佳方法是将安全组名称粘贴到 EC2->Instances 部分的搜索字段中。
与粘贴的安全组关联的所有实例都将被填充 - 这些将是 ec2 对象(依赖项)。
您还可以在 ELB 部分和其他利用安全组的 AWS 产品中运行此搜索。
如果您尝试删除安全组,则需要为每个实例“更改安全组”(如果它们在 VPC 中)或创建 AMI 并使用不同的安全组重新启动 - 然后删除旧实例(如果使用 EC2 classic)
希望有帮助-
答案3
您需要查看您的 EC2 实例对象,而不是组本身:
$ aws ec2 describe-instances --output text
然后查找“sg-*”或使用标准 unix 文本流处理工具来提取所需的数据。
或者,如果您只有少量实例,请使用--output table
格式良好的列表。
答案4
Lambda 函数也可能具有安全组。在撰写本文时,Amazon 不会阻止删除 Lambda 函数使用的安全组。
我用的是这个:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'