Amazon EC2 不会让我删除安全组,抱怨该组仍然有依赖关系。我如何找到这些依赖项是什么?
aws ec2 describe-security-groups 没有说。
小智 75
将安全组 ID 粘贴到 EC2 的“网络接口”部分。这将在 EC2、EB、RDS、ELB 中找到用法。
命令行界面: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
Sco*_*ore 10
在 AWS EC2 控制台中执行此操作的最佳方法是在 EC2->Instances 部分的搜索字段中粘贴安全组名称。
然后将填充与粘贴的安全组关联的所有实例 - 这些将是 ec2 对象(依赖项)。
您还可以在 ELB 部分和其他利用安全组的 AWS 产品中运行此搜索。
如果您尝试删除安全组,则需要为每个实例“更改安全组”(如果它们在 VPC 中)或创建 AMI 并使用不同的安全组重新启动 - 然后删除旧实例(如果使用 EC2 经典)
希望有帮助-
您需要查看 EC2 实例对象,而不是组本身:
$ aws ec2 describe-instances --output text
Run Code Online (Sandbox Code Playgroud)
然后要么查找“sg-*”,要么使用标准的 unix 文本流处理工具来提取您需要的数据。
或者,如果您有少量实例,请使用--output table
格式良好的列表。
您可以查询 aws cli 以获取您想要的数据。
你需要:
您还可以使用库,例如 boto https://code.google.com/p/boto/而不是原始的 aws cli。
Lambda 函数也可能有安全组。在撰写本文时,Amazon 不阻止删除 Lambda 函数使用的安全组。
我用过这个:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
Run Code Online (Sandbox Code Playgroud)
另一个问题是依赖于其他安全组的安全组。可以使用此命令生成邻接列表(直接依赖项):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
Run Code Online (Sandbox Code Playgroud)
理想情况下,这个结果应该用于找到传递闭包(所有依赖,直接和间接)。不幸的是,我没有找到一个 Transitive 闭包工具。
归档时间: |
|
查看次数: |
41376 次 |
最近记录: |