2015-05-30 31 views
2

我一直在閱讀Pyboto documentation,雖然我知道如何添加基於IP的規則到安全組,我一直沒能找到一個方法刪除一個基於IP的規則。安全組對象上的remove_rule方法不會更新ec2實例上的安全組,因此我不確定這會對我有幫助。Pyboto:刪除基於IP的規則從安全組

以前有沒有人做過這個?

回答

2

a SecurityGroup boto中的對象有兩個重要的方法; authorizerevoke。向組添加和刪除規則的最簡單方法是使用這些方法。因此,添加基於IP的規則:

import boto.ec2 
conn = boto.ec2.connect_to_region('us-west-2') # or whatever region you want 
sg = conn.get_all_security_groups('my_security_group')[0] 
sg.authorize('tcp', 22, 22, cidr_ip='0.0.0.0/0') 

這將爲所有主機授權端口22。撤銷該規則(您應該!):

sg.revoke('tcp', 22, 22, cidr_ip='0.0.0.0/0') 

它的參數相同。

+0

謝謝 - 我如何返回一個安全組的基於IP的規則列表? – user1658296

+1

您無法獲取僅基於IP的規則列表,但您可以使用SecurityGroup對象的rules屬性獲取安全組的所有規則列表。此列表中的每個對象都會有一個「授予」屬性,該屬性是與該規則關聯的顯式授權列表。如果該對象對於屬性「cidr_ip」具有非非值,則它是基於IP的規則。 – garnaat