python – 如何使用Boto从ENI添加或删除安全组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何使用Boto从ENI添加或删除安全组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1894字,纯文字阅读大概需要3分钟。
内容图文
![python – 如何使用Boto从ENI添加或删除安全组?](/upload/InfoBanner/zyjiaocheng/795/aa25745ee75c4231bd77a0b1293bd64c.jpg)
我正在使用Boto Python界面来管理我的EC2软件定义的网络,我正在编写一种方法来管理弹性网络接口(ENI)上的安全组.
我不知道如何告诉EC2在ENI中添加或删除安全组.
到目前为止我的方法基本上是:
import boto
conn = boto.connect_ec2()
my_eni = conn.get_all_network_interfaces(['eni-xxxx1234'])[0]
my_eni_groups = my_eni.groups
my_eni_sg_ids = [ x.id for x in my_eni_groups ]
desired_sg_state = ['sg-xxxx1234','sg-xxxx5678']
# if present, do nothing, else, add it somehow..
for sg in desired_sg_state:
if sg in my_eni_sg_ids:
print('Okay: ', sg)
else:
# not sure what method to use here!
我搜索了文档,但在boto.ec2.securitygroup或boto.ec2.networkinterface对象中找不到任何关于安全组的关联/解除关联的信息.我确信有办法做到这一点,但这对我来说并不明显.
解决方法:
相关操作位于boto.ec2.connection级别 – 您可以使用modify_network_interface_attribute对弹性网络接口上的安全组进行更改:
import boto
sg_string_list = ['sg-xxxx1234', 'sg-xxxx5678']
conn = boto.connect_ec2()
conn.modify_network_interface_attribute(interface_id=eni_id,
attr='groupSet',
value=sg_string_list)
通用形式是:
modify_network_interface_attribute(interface_id,attr,value,attachment_id = None,dry_run = False).
重要的是要记住,您要指定您希望ENI进入的状态,而不是简单地使用modify_network_interface_attribute调用添加/删除SG;如果你想要添加行为,首先获取当前的SG列表,然后附加你的新SG:
import boto
conn = boto.connect_ec2()
my_eni_groups = conn.get_all_network_interfaces(['eni-1582af5d'])[0].groups
my_eni_sg_ids = [ x.id for x in my_eni_groups ]
add_sg = 'sg-xxxx1234'
if add_sg not in my_eni_sg_ids:
my_eni_sg_ids.append(add_sg)
#only need to call this if we modified the list
conn.modify_network_interface_attribute(interface_id=eni_id,
attr='groupSet',
value=my_eni_sg_ids)
EC2 documentation of the endpoint和Boto’s parameters之间没有请求参数的一对一映射,因此请务必在Boto文档或visiting the source code中查看属性选项名称(请注意,您可能需要更改分支以匹配您的版本(和可能是链接的行号)).
内容总结
以上是互联网集市为您收集整理的python – 如何使用Boto从ENI添加或删除安全组?全部内容,希望文章能够帮你解决python – 如何使用Boto从ENI添加或删除安全组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。