如何确定 AWS 安全组依赖关系?

如何确定 AWS 安全组依赖关系?

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) }'

相关内容