我正在审计安全组,现在我的任务是找到没有公共IP地址的eni,并且入站安全组规则引用公共IP地址。
我有迭代eni的代码,并查看附加到每个安全组,我希望回收它。下面是代码:
used_sgs = {}
enis = ec2_conn.get_all_network_interfaces()
for eni in enis:
eni_sgs = eni.groups
for sg in eni_sgs:
sgn = sg.name
if sgn not in used_sgs:
used_sgs[sgn] = 0
used_sgs[sgn]+=1
是否有一个属性,我可以嗅探,看看是否一个ENI有一个公共IP?或者我必须采取其他路线(迭代实例,或抓取ENI附件,或其他东西)?
eni.publicIp
不是所有的enis都有publicIp。检查publicIp属性是否存在然后获取值
for eni in enis:
if hasattr(eni, 'publicIp') and eni.publicIp:
print eni.id, eni.publicIp