侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

阿里云SDK的使用(安全组篇)

2023-11-01 星期三 / 0 评论 / 0 点赞 / 48 阅读 / 5388 字

因工作需要,想通过脚本控制阿里云的安全组,通过阿里云官网了解到有两种方式可以实现,一是通过API的方式,二是通过SDK的方式,昨天尝试了一下API的方式,没有成功,网上也没查到相关资料,只好转战SDK

因工作需要,想通过脚本控制阿里云的安全组,通过阿里云官网了解到有两种方式可以实现,一是通过API的方式,二是通过SDK的方式,昨天尝试了一下API的方式,没有成功,网上也没查到相关资料,只好转战SDK,接下来说说SDK怎么使用。

首先你需要创建一个RAM子账号:打开阿里云管理控制台,在“产品与服务”中找到“访问控制”,第一次使用需要激活,接下来不用我说你也应该懂怎么做了,创建完用户后给他创建一个”Access Key“,然后根据你的需要给他授权。

安装SDK:我需要管理ECS,所以我只需安装ECS的SDK即可,直接通过pip命令安装:”pip install aliyun-python-sdk-ecs“,如果你不知道你想管理的模块对应的SDK,请查看官网公布的列表。

下面是查看某个安全组的示例:

# -*- coding: utf8 -*-from aliyunsdkcore.client import AcsClientfrom aliyunsdkecs.request.v20140526 import DescribeSecurityGroupAttributeRequestclient = AcsClient(    "AccessKeyId",  # 此处填写你刚才创建的RAM子账号的AccessKeyId    "AccessKeySecret",  # 此处填写你刚才创建的RAM子账号的AccessKeySecret    "区域"  # 此处填写你要管理的区域)request = DescribeSecurityGroupAttributeRequest.DescribeSecurityGroupAttributeRequest()request.set_SecurityGroupId('安全组ID')response = client.do_action_with_exception(request)print response

注:如果不知道自己的服务器在哪个区域,可查看官网公布的信息。

 

官网上关于SDK的资料好少,所以只能靠包名来猜测功能了,所有包都在”C:/Python27/Lib/site-packages/aliyunsdkecs/request/v20140526“中,一般Describe开头的都是查看功能,Modify开头的都是修改功能,也不难搞懂。

 

包名 功能
AuthorizeSecurityGroupRequest 添加安全组规则(入方向)
AuthorizeSecurityGroupEgressRequest 添加安全组规则(出方向)
CreateSecurityGroupRequest 创建安全组
DeleteSecurityGroupRequest 删除安全组
DescribeSecurityGroupAttributeRequest 查看某个安全组的明细
DescribeSecurityGroupsRequest 查看所有安全组
JoinSecurityGroupRequest 将实例加入安全组
LeaveSecurityGroupRequest 将实例移出安全组
ModifySecurityGroupAttributeRequest 修改安全组名和描述
RevokeSecurityGroupEgressRequest 删除安全组规则(出方向)
RevokeSecurityGroupRequest 删除安全组规则(入方向)

下面是一个添加安全组规则的示例(公共部分已省略,请参考第一个示例):

from aliyunsdkecs.request.v20140526 import AuthorizeSecurityGroupRequestrequest = AuthorizeSecurityGroupRequest.AuthorizeSecurityGroupRequest()request.set_SecurityGroupId('安全组ID')request.set_IpProtocol('tcp')request.set_PortRange('80/80')request.set_SourceCidrIp('0.0.0.0/0')

创建安全组的示例:

from aliyunsdkecs.request.v20140526 import CreateSecurityGroupRequestrequest = CreateSecurityGroupRequest.CreateSecurityGroupRequest()

删除安全组示例:

from aliyunsdkecs.request.v20140526 import DeleteSecurityGroupRequestrequest = DeleteSecurityGroupRequest.DeleteSecurityGroupRequest()request.set_SecurityGroupId('安全组ID')

将实例加入安全组:

from aliyunsdkecs.request.v20140526 import JoinSecurityGroupRequestrequest = JoinSecurityGroupRequest.JoinSecurityGroupRequest()request.set_SecurityGroupId('安全组ID')request.set_InstanceId('实例ID')

将实例移出安全组:

from aliyunsdkecs.request.v20140526 import LeaveSecurityGroupRequestrequest = LeaveSecurityGroupRequest.LeaveSecurityGroupRequest()request.set_SecurityGroupId('安全组ID')request.set_InstanceId('实例ID')

修改安全组名和描述:

from aliyunsdkecs.request.v20140526 import ModifySecurityGroupAttributeRequestrequest = ModifySecurityGroupAttributeRequest.ModifySecurityGroupAttributeRequest()request.set_SecurityGroupId('安全组ID')request.set_SecurityGroupName('新安全组名')request.set_Description('新描述')

删除安全组规则(入方向)示例:

from aliyunsdkecs.request.v20140526 import RevokeSecurityGroupRequestrequest = RevokeSecurityGroupRequest.RevokeSecurityGroupRequest()request.set_SecurityGroupId('安全组ID')request.set_IpProtocol('tcp')request.set_PortRange('80/80')request.set_SourceCidrIp('0.0.0.0/0')

 

广告 广告

评论区