繁体   English   中英

Python Boto AWS删除VPC安全组规则

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM