阿里云Python-SDK管理安全组和RDS实例IP白名单
来源:互联网 发布:rabin c语言 编辑:程序博客网 时间:2024/05/16 02:19
- 安装SDK
#pip install aliyun-python-sdk-rds #pip install aliyun-python-sdk-ecs
如果安装报错可能需要安装python-dev
#rpm -ivh python-dev
- 代码示例:
#!/usr/bin/env python# coding=utf-8from aliyunsdkcore import clientfrom aliyunsdkecs.request.v20140526 import DescribeSecurityGroupAttributeRequestfrom aliyunsdkecs.request.v20140526 import AuthorizeSecurityGroupRequestfrom aliyunsdkecs.request.v20140526 import AuthorizeSecurityGroupEgressRequestfrom aliyunsdkecs.request.v20140526 import RevokeSecurityGroupRequestfrom aliyunsdkecs.request.v20140526 import RevokeSecurityGroupEgressRequestfrom aliyunsdkecs.request.v20140526 import DescribeSecurityGroupsRequestfrom aliyunsdkrds.request.v20140815 import ModifySecurityIpsRequestclass Alis(): def __init__(self, AccessKey, AccessSecret, RegionId): self.AccessKey = AccessKey self.AccessSecret = AccessSecret self.RegionId = RegionId def client(self): c = client.AcsClient(self.AccessKey, self.AccessSecret, self.RegionId) return c def describeSecurityGroupsRequest(self): request = DescribeSecurityGroupsRequest.DescribeSecurityGroupsRequest() request.set_accept_format('json') return request def describeSecurityGroupAttributeRequest(self,SecurityGroupId,NicType='internet',Direction='ingress'): """查询安全组规则 """ request = DescribeSecurityGroupAttributeRequest.DescribeSecurityGroupAttributeRequest() request.set_SecurityGroupId(SecurityGroupId) request.set_accept_format('json') request.set_NicType(NicType) request.set_Direction(Direction) return request def authorizeSecurityGroupRequest(self, SecurityGroupId, IpProtocol, Direction, PortRange, SourceCidrIp, DestCidrIp, Priority=1): """授权安全组规则 """ if Direction == 'ingress': request = AuthorizeSecurityGroupRequest.AuthorizeSecurityGroupRequest() elif Direction == 'egress': request = AuthorizeSecurityGroupEgressRequest.AuthorizeSecurityGroupEgressRequest() else: raise NameError("The specified parameter 'Direction' is not valid.") request.set_SecurityGroupId(SecurityGroupId) request.set_IpProtocol(IpProtocol) request.set_PortRange(PortRange) if SourceCidrIp: request.set_SourceCidrIp(SourceCidrIp) if DestCidrIp: request.set_DestCidrIp(DestCidrIp) request.set_Priority(Priority) request.set_Description("内部IP访问") request.set_Policy('accept') request.set_accept_format('json') return request def revokeSecurityGroupRequest(self, SecurityGroupId, IpProtocol, Direction, PortRange, SourceCidrIp, DestCidrIp, Priority=1): """删除安全组规则 """ if Direction == 'ingress': request = RevokeSecurityGroupRequest.RevokeSecurityGroupRequest() elif Direction == 'egress': request = RevokeSecurityGroupEgressRequest.RevokeSecurityGroupEgressRequest() else: raise NameError("The specified parameter 'Direction' is not valid.") request.set_SecurityGroupId(SecurityGroupId) request.set_IpProtocol(IpProtocol) request.set_PortRange(PortRange) if SourceCidrIp: request.set_SourceCidrIp(SourceCidrIp) if DestCidrIp: request.set_DestCidrIp(DestCidrIp) request.set_Priority(Priority) request.set_Policy('accept') request.set_accept_format('json') return request def modifySecurityIpsRequest(self, DBInstanceId, SecurityIps, DBInstanceIPArrayName, DBInstanceIPArrayAttribute): """修改数据库实例白名单 """ request = ModifySecurityIpsRequest.ModifySecurityIpsRequest() request.set_DBInstanceId(DBInstanceId) request.set_SecurityIps(SecurityIps) request.set_DBInstanceIPArrayName(DBInstanceIPArrayName) request.set_DBInstanceIPArrayAttribute(DBInstanceIPArrayAttribute) return requestif __name__ == '__main__': ali = Alis(AccessKey, AccessSecret, RegionId) # 阿里云后台创建 clt = ali.client() req = ali.revokeSecurityGroupRequest(securityGroupId, ipProtocol, direction, portRange, sourceCidrIp, destCidrIp, priority) res = clt.do_action_with_exception(req) print("删除安全组%s" % res) req = ali.authorizeSecurityGroupRequest(securityGroupId, ipProtocol, direction, portRange, sourceCidrIp, destCidrIp, priority) res = clt.do_action_with_exception(req) print("新增安全组%s" % res) req = ali.modifySecurityIpsRequest(dbInstanceId, securityIps, dbInstanceIPArrayName, dbInstanceIPArrayAttribute) res = clt.do_action_with_exception(req) print("修改RDS白名单%s" % res)
参数含义请参照:
https://help.aliyun.com/document_detail/25485.html?spm=5176.doc25471.6.824.Ag5dXd
https://help.aliyun.com/document_detail/25485.html?spm=5176.doc25699.6.824.Skx9SD
阅读全文
0 0
- 阿里云Python-SDK管理安全组和RDS实例IP白名单
- 阿里云RDS文档概述——实例管理
- 阿里云 RDS SDK python3支持
- 阿里云CentOS6.5(nginx+PHP-fpm)及RDS初级使用指南和简单安全设置
- 阿里云CentOS6.5(nginx+PHP-fpm)及RDS初级使用指南和简单安全设置
- 1.云翼计划 大学生成长计划,学生云服务器低至9.9元 2.爆款云服务器30元/1月 3.RDS 40.8元/1月 RDS管理数据 4.阿里云DDOS高仿IP 云盾高仿IP 5.云解析然域名解析更安全
- 试用阿里云RDS
- 试用阿里云RDS
- 阿里云推出RDS只读实例 分担数据库读写压力
- 阿里云RDS文档概述——数据库管理
- 阿里云RDS文档概述——账号管理
- 一个类似阿里云RDS的网页数据库管理系统
- 阿里云linux CentOS6.5(nginx+PHP-fpm)及RDS初级使用指南和简单安全设置
- 阿里云数据库维护记录-RDS MySQL IOPS 使用率高的原因和处理--RDS实例CPU超过100%的分析
- python环境下阿里云RDS签名机制
- 真是环境下阿里云RDS实例mysql性能优化-慢查询分析、优化索引和配置
- 阿里云 RDS 读写分离
- 恢复阿里云RDS数据
- 一些好的网站记录(PART 9)
- Struts2框架搭建详解
- OpenIMSCore的搭建过程
- 无法打开cufft.lib文件以及无法解析cufft的相关的外部符号的解决方法
- CodeForce Football
- 阿里云Python-SDK管理安全组和RDS实例IP白名单
- SSM框架的搭建之Maven依赖
- SSM框架中-使用KindEditor+Nginx服务器+FTP服务,实现多文件上传
- how to populate values in dropdownbykey in webdynpro
- jdbc连接数据库
- Debugging hibernation and suspend
- 明明白白你的Linux服务器——硬件篇
- iOS 实时获取当前应用消耗的CPU和内存
- mark mybatis 返回boolean