[英]Python Boto AWS Remove VPC Security Group Rules
我目前正在自动执行AWS VPC的构建,但希望删除添加到使用VPC创建的安全组中的默认规则。 我可以这样查看安全组规则:
for security_group in vpc_connection.get_all_security_groups(): for rule in vpc_security_group.rules: print dir(rule)
如果有人可以告诉我或给我一个如何从VPC删除默认规则的示例,我将不胜感激。
从API文档中,我可以看到一些方法,例如:
boto.ec2.connection.revoke_security_group()
但是,如果这确实是正确的方法,我不清楚需要作为参数传递什么。
非常感谢
H
我最终弄清楚了:
for rule in vpc_security_group.rules:
for grant in rule.grants:
ec2_connection.revoke_security_group(group_id=vpc_security_group.id, ip_protocol=rule.ip_protocol, from_port=rule.from_port, to_port=rule.to_port, src_security_group_group_id=grant.group_id, cidr_ip=grant.cidr_ip)
for rule in vpc_security_group.rules_egress:
for grant in rule.grants:
ec2_connection.revoke_security_group_egress(vpc_security_group.id, rule.ip_protocol, rule.from_port, rule.to_port, grant.group_id, grant.cidr_ip)
我使用了上面的一些逻辑来编写了一些python脚本,这些脚本将删除一个安全组,无论它是ec2-classic还是VPC(仅假定入口规则)。 有几种特殊情况,例如要删除的SG在另一个SG的入口规则中被引用。 另一个特殊情况是在EC2-classic中引用用于ELB的AWS默认SG。 两者都得到了很好的处理,脚本可以在这里找到: https : //gist.github.com/arpcefxl/2acd7d873b95dbebcd42
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.