准备工作

  • 本机操作系统:CentOS7
  • python版本:python2.7.5
  • 还需要准备如下信息:
  • 一个云账号、Access Key ID、Access Key Secret、安全组ID、Region ID(如cn-shanghai)

1 安装阿里云python SDK

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895 817 687有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!

1 pip install aliyun-python-sdk-ecs

2 需求分析

我们供应商的开发人员经常需要访问我们的阿里云ECS资源,我们要根据供应商的ip添加相应的入方向安全组策略。

但是供应商的外网ip经常变化,几乎每天都要添加新的安全组策略并删掉旧的策略,在阿里云平台上执行此类操作很繁琐、低效。

所以需要使用python来简化操作,运行脚本就可以实现添加和删除安全组规则的操作。

3 脚本说明

3.1 增加规则的脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526 import AuthorizeSecurityGroupRequest
import sys
import jsonclass AliGroup:def __init__(self, AccessKey, AccessSecret, RegionId):self.AccessKey = AccessKeyself.AccessSecret = AccessSecretself.RegionId = RegionIddef client(self):"""用于创建AcsClient实例"""client = AcsClient(self.AccessKey, self.AccessSecret, self.RegionId)return clientdef authorizeSecurityGroupRequest(self, PortRange, SourceCidrIp, Priority=1, IpProtocol='tcp', SecurityGroupId='your-securitygroup-id'):"""用于添加安全组规则"""#创建AuthorizeSecurityGroupRequest实例request = AuthorizeSecurityGroupRequest.AuthorizeSecurityGroupRequest()#设置安全组IDrequest.set_SecurityGroupId(SecurityGroupId)#设置协议,比如TCP或者UDPrequest.set_IpProtocol(IpProtocol)#设置端口范围request.set_PortRange(PortRange)#如果存在源ip,则设置源ipif SourceCidrIp:request.set_SourceCidrIp(SourceCidrIp)#设置优先级request.set_Priority(Priority)#设置规则的动作为接受request.set_Policy('accept')#设置接收数据格式为jsonrequest.set_accept_format('json')return requestif __name__ == '__main__':#AliGroup类实例化ali = AliGroup("your-access-key-id", "your-access-key-secret", "your-region-id")#创建AcsClient实例clt = ali.client()#添加安全组规则,由于优先级、协议和安全组ID已经设置默认参数,所以只需要在运行脚本时输入端口范围和源ip两个参数add = ali.authorizeSecurityGroupRequest(sys.argv[1], sys.argv[2])#打印输出res = clt.do_action(add)print res

3.2 删除规则的脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526 import RevokeSecurityGroupRequest
import sys
import jsonclass AliGroup:def __init__(self, AccessKey, AccessSecret, RegionId):self.AccessKey = AccessKeyself.AccessSecret = AccessSecretself.RegionId = RegionIddef client(self):"""用于创建AcsClient的实例"""client = AcsClient(self.AccessKey, self.AccessSecret, self.RegionId)return clientdef revokeSecurityGroupRequest(self, PortRange, SourceCidrIp, Priority=1, IpProtocol='tcp', SecurityGroupId='your-securitygroup-id'):"""删除安全组规则"""request = RevokeSecurityGroupRequest.RevokeSecurityGroupRequest()request.set_SecurityGroupId(SecurityGroupId)request.set_IpProtocol(IpProtocol)request.set_PortRange(PortRange)if SourceCidrIp:request.set_SourceCidrIp(SourceCidrIp)request.set_Policy('accept')request.set_accept_format('json')return requestif __name__ == '__main__':ali = AliGroup("your-access-key-id", "your-access-key-secret", "your-region-id")clt = ali.client()rem = ali.revokeSecurityGroupRequest(sys.argv[1], sys.argv[2])res = clt.do_action(rem)print res

4 运行结果

4.1 增加规则

参数说明:

python后面第一个参数是脚本名称;

第二个参数是端口范围,一定要以"source-port/end-port"这种形式来写,这里以8282/8282为例;

第三个参数是源ip,这里以112.115.115.58为例。
运行结果如下:

云平台上查看结果,也可以看到增加的规则:

4.2 删除规则
运行结果如下:

云平台上查看结果,也可以看到删除的规则消失了,这里就不展示了。

使用阿里云Python SDK管理ECS安全组相关推荐

  1. 提升普适性,阿里云官方SDK发布支持Go语言SDK

    摘要: 日前,阿里云官方SDK发布支持新语言--Go 语言SDK,意味着90%以上产品可以随时生成并发布Go SDK,给Go语言的开发者使用. 此次阿里云发布支持Go SDK的新功能,可以让Go语言开 ...

  2. python云计算服务_阿里云python 云计算

    阿里云python 云计算 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Serv ...

  3. 阿里云虚拟主机、ECS云服务器和轻量应用服务器区别

    阿里云虚拟主机.ECS云服务器和轻量应用服务器有什么区别?这些主机都能建站,那么在使用环境和实际操作中区别还是很大的.魏艾斯博客从技术.性能等方面详细讲解这三者的区别. 1.云虚拟主机不需要用户参与服 ...

  4. 揭秘阿里云 RTS SDK 如何实现直播降低延迟和卡顿

    简介:这个夏天,没什么能够比一场酣畅淋漓的奥运比赛来的过瘾.但是,在视频平台直播观看比赛也有痛点:"卡顿" 和 "延时".受限于不同地域.复杂的网络情况.传输速 ...

  5. 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿

    简介: RTS NetSDK是未来直播和通信一体化SDK的基石.在RTS NetSDK之上,加一个Multimedia Framework,以及QoS消息处理,就可以构成一个一体化SDK.这对于已经有 ...

  6. Py函数直接传入root是啥意思_阿里云python课程笔记(四):函数amp;类和对象

    接阿里云python课程笔记(三):数据结构 我们讨论一下python中的深拷贝和浅拷贝 dic1 = {'user': 'lsgogroup', 'num': [1, 2, 3]}# 引用对象dic ...

  7. 阿里云 OSS SDK :上传的图片直接访问变成下载问题解决

    文章目录 阿里云 OSS SDK :上传的图片直接访问变成下载问题解决 1.产生原因 2.解决方案 阿里云 OSS SDK :上传的图片直接访问变成下载问题解决 1.产生原因 上传的文件,未指定文件访 ...

  8. java使用阿里云oss sdk

    导入依赖 <dependencies><!--阿里云oss sdk依赖--><dependency><groupId>com.aliyun.oss< ...

  9. 阿里云(python ocr)

    阿里云 python 调用ocr 1.搜索工具 2.获得调用地址 3. 获得产品拿到AppCode 4. 得到实例代码 1.搜索工具 https://market.aliyun.com/product ...

最新文章

  1. 计算机组成原理第7章-输入/输出系统
  2. 【报错笔记】eclipse运行tomcat程序时报错
  3. java 反射 属性顺序_java反射得到的方法数组的顺序
  4. Java RandomAccessFile readInt()方法与示例
  5. 地理文本处理技术在高德的演进(下)
  6. linux环境下rocketMq双master集群搭建
  7. 语言孪生素数问题_刘建亚教授讲述“素数的故事”
  8. 公因式的概念_公因式概念论文,关于也淡化概念相关参考文献资料-免费论文范文...
  9. 由前序遍历和中序遍历确定二叉树
  10. 微信开发者工具提示 “当前系统代理不是安全代理,是否信任?”
  11. Learn Git Branching 答案汇总
  12. P1282 多米诺骨牌
  13. 应用计算机测定电阻伏安特性,实验: 应用计算机测线性电阻伏安特性
  14. 修改电脑C:\User\用户名文件夹的名字
  15. VS2019 KEY
  16. eclipse项目名旁边一个红xx,解决办法
  17. Program week9 work
  18. VS2008试用版破解方法
  19. 【系统之家首发】Ghost_Windows7_sp1_Ultimate_x86V2011.10.10 【OEM 通用版】Windows7旗舰版好人一个出品
  20. codeforces 1567 C. Carrying Conundrum

热门文章

  1. Jenkins【环境搭建 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
  2. springboot集成spring security实现登录和注销
  3. 【学习笔记】springboot的AutoConfigurationImportSelector 、@EnableAutoConfiguraion和@import解析
  4. shell的学习和命令使用入门
  5. String字符串相等判断
  6. Redhat 停止sendmail的方法
  7. Hadoop1.2.1集群安装二
  8. JavaWeb黑马旅游网-学习笔记01【准备工作】
  9. Java连接SQL Server 2012【查看自己电脑上的SQL Server端口号;附:jar包】
  10. PHP-计算表单提交的数据