我在过去几周创建了新的EC2现货请求。每个请求都会创建一个新的安全组。当现货请求被删除时,安全组不会被删除。我已经达到了100组限制,并且想要删除它们。 EC2接口显然每次只允许删除一次,这意味着我必须点击300次才能删除这些组。还是有更好的方法来删除几个点击或代码行的多个安全组?如何删除Amazon ec2上的所有安全组?
6
A
回答
1
我想你可以通过组合一个列出所有安全组的命令和一个删除它们的命令来完成此操作。
如果您正在使用Python boto
API(举例来说)这将是:
import boto
conn = boto.connect_ec2(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
groups = conn.get_all_security_groups()
它返回(作为一个例子):[SecurityGroup:appserver, SecurityGroup:default, SecurityGroup:vnc, SecurityGroup:webserver]
然后你将它们全部删除:
for group in groups:
conn.delete_security_group(group.split(":")[1])
编辑
您应该在shell上运行这些命令。
4
这需要一些基本的脚本和AWS SDK。您可以使用AWS提供的几乎所有SDK来完成此任务。
我宁愿AWS-CLI
,因为我已经安装和配置它。这是我会做什么:
- 列出所有describe-security-groups
- 的的SG安装jq(JSON的解析器BASH)
- 拉SG标识(检查this为
jq
语法) - 一旦你拥有SG ID,请通过使用
for
循环运行delete-security-group。
这是相当简单和直接的方式做你想要做的扫管笏。这可以通过任何AWS开发工具包完成。
这些只是一对夫妇的命令,它可以构建成一个bash脚本,提供:
- 你有aws-cli安装和配置
- 你已经安装在系统上
jq
。
如果你已经安装了一些其他的AWS SDK,那么你最好用java/python/ruby等等,都有自己内置的解析JSON/HASH/DataStructure的方法。
希望这会有所帮助。
0
这些解决方案仅适用于您在其他安全组中引用相关安全组的规则。我有几个脚本会删除单个安全组,包括其他安全组中的入口规则。我还处理引用AWS ELB默认安全组的入口规则的特例。如果您遇到这种更复杂的情况,由于这些其他规则,上述解决方案不会删除您的安全组。我的脚本是在这里(一个用于EC2-经典和一个基于VPC安全组):https://gist.github.com/arpcefxl/2acd7d873b95dbebcd42
0
private static void delete(List<String> sgs) {
AmazonEC2Client ec2 = new AmazonEC2Client(Credentials.getCredentialsProvider());
ec2.setEndpoint("ec2.us-west-2.amazonaws.com"); // default
for(String sg:sgs) {
System.out.println("DELETING SECURITY GROUP " + sg);
DeleteSecurityGroupRequest delReq = new DeleteSecurityGroupRequest().withGroupName(sg);
try {
ec2.deleteSecurityGroup(delReq);
} catch (Exception e) {
// e.printStackTrace();
}
}
}
相关问题
- 1. 删除EC2默认安全组
- 2. 我可以安全地删除Amazon EC2 ssh密钥吗?
- 3. 如何在Amazon Linux AMI EC2实例上安装安全更新?
- 4. 删除所有安全组的所有权限Powershell
- 5. 如何为离子源设置Amazon EC2安全组?
- 6. 如何在amazon EC2上安装Tomee 1.6?
- 7. 如何在Amazon EC2上安装Parse Server?
- 8. node.js的在Amazon EC2上使用Ubuntu 8.04安装在Amazon EC2上
- 9. AWS EC2和VPC安全组
- 10. 安全组内部的EC2安全组
- 11. Amazon EC2:如何在EC2中安装glassfish?
- 12. 在Amazon EC2上安装numpy
- 13. 在Amazon EC2上安装nginx
- 14. 无法SSH AWS EC2即使安全组允许所有通信
- 15. 如何在Amazon EC2上
- 16. 如何删除安全模式下的所有文档?
- 17. PowerShell:如何删除服务器上的安全组?
- 18. 我可以在Amazon Dynamodb上使用EC2类型的安全组吗?
- 19. EC2安全组关注
- 20. Amazon Redshift安全组问题
- 21. 如何安装和配置上的Amazon EC2 Ubuntu的
- 22. 在amazon ec2上安装八度音
- 23. 在Amazon EC2上安装numpy virtualenv
- 24. 在Amazon EC2实例上安装Skype
- 25. 在Amazon EC2上安装Varnish Cache 3.0
- 26. 在Amazon EC2上安装pine/alpine linux
- 27. 安装最新imagemagick与LCMS上amazon ec2
- 28. 广东话安装libv8在Amazon EC2上
- 29. 在amazon EC2服务器上安装Kannel
- 30. EC2删除您的Amazon Web Services帐户上的EC2电子邮件发送限制后的AWS DNS安装
试过您的解决方案,但目前的情况下不能访问旧的安全组,只有两个是上市,一个是使用和默认的一个。我不能这样做,因为使用安全组的实例已在几天前终止。目前的实例只有一个新的安全组运行(我从我的错误中学到)。显然,我将不得不点击300次。如果我选择多个安全组,EC2 UI将禁用删除按钮。不管怎么说,还是要谢谢你。 – Casady
@Casady“我不能这样做,因为使用安全组的实例已经在几天前终止了。”我并不真正在你的云中,但我无法理解这意味着什么。纠正我,如果我错了,但我认为'get_all_security_groups'获取所有安全组。 :)你也应该尝试@slayedbylucifer的回答。 –
我也这么认为!但是我登录了其中一个实例,运行python scrypt,它只显示两个。为实例创建的一个,以及默认的一个。 – Casady