介绍:

1.aws安全组策略:协议、端口、流入流量、流出流量
2.aws 控制python库: boto3,需先安装。
3.脚本作用:获取本地外网IP-----》添加到指定安全组

代码:

#!/usr/bin/env python
#coding:utf-8import re
import urllib2
import datetime
import boto3
from botocore.exceptions import ClientErrordef get_ip():# 获取外网IPurl = 'https://www.ipip.net/'html = urllib2.urlopen(url).read()ips = re.findall('\d+\.\d+\.\d+\.\d+',html)ips = list(set(ips))ip = ''for item in ips:if item != '8.8.8.8':ip = itembreakreturn ipd_port = 11230                                 # 目标端口
group_id = 'sg-xxxxxxx'                    # 要操作的安全组id
client = boto3.client('ec2',region_name='ap-south-1',         # 安全组所属区域aws_access_key_id='xxxxxxxxxxx',                   #IAM账号idaws_secret_access_key='xxxxxxxxxxx')           #IAM账号keynow = datetime.datetime.now().strftime('%m-%d_%H:%M:%S')my_ip =  get_ip()
if my_ip is not None:my_ip = my_ip + "/32"
# print my_ipr_ip = []
res = client.describe_security_groups(GroupIds=[group_id])
for item in res['SecurityGroups'][0]['IpPermissions']:if item['FromPort'] == d_port:for iprange in item['IpRanges']:r_ip.append(iprange['CidrIp'])
# print r_ipif my_ip not in r_ip:try:data = client.authorize_security_group_ingress(GroupId = group_id,IpPermissions=[{'IpProtocol': 'tcp','FromPort':d_port,'ToPort':d_port,'IpRanges':[{'CidrIp':my_ip,'Description':now}]}])print "Add %s successful..."%my_ipexcept ClientError as e:print e

转载于:https://blog.51cto.com/11424123/2056862

python调用aws接口添加安全组策略相关推荐

  1. pythondockerapi_docker-py 用Python调用Docker接口的方法

    众所周知,Docker向外界提供了一个API来管理其中的资源.这个API可以是socket文件形式的(一般也是默认的,在/var/run/docker.sock中),也可以是TCP形式的.以前想要通过 ...

  2. c调python_应该是史上最全的python调用C接口

    在这段时间里,我需要使用python调用C接口.我在网上搜索了很多,再加上python的官方文件,并组织备份1.从ctypes加载dll导入* dll = () # func1dll = CDLL ( ...

  3. python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...

    python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...

  4. python调用第三方接口获取数据_python调用接口,python接收post请求接口(附完整代码)...

    与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接 ...

  5. python rpc_对python调用RPC接口的实例详解

    要调用RPC接口,python提供了一个框架grpc,这是google开源的 rpc相关文档: 需要安装的python包如下: 1.grpc安装 pip install grpcio 2.grpc的p ...

  6. Python 调用WebService接口出错-suds.transport.TransportError: HTTP Error 401: Unauthori

    使用Python调用WebService接口出现"suds.transport.TransportError: HTTP Error 401: Unauthorized"错误. 问 ...

  7. 实现python 调用 C++ 接口的 easypr

    实现python 调用 C++ 接口的 easypr 本文实现了用python 调用 C++ 的easypr ,实现车牌的识别. CMakelist.txt 以及调用方法将会附上 CMakelist. ...

  8. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  9. 如何利用python调用API接口获取数据进行测试

    一.Python 可以使用 requests 库来调用 API 接口获取数据.以下是基本的步骤: 1.安装 requests 库 pip install requests 2.导入 requests ...

最新文章

  1. how you can do to make girls more close to you?
  2. .net core独立发布文件过多的问题
  3. android mysql 图片_android sqlite添加图片到数据库
  4. sql:数据定义语言ddl
  5. 再有人问你volatile是什么,把这篇文章也发给他。
  6. Java-虚拟机-启动参数及调优
  7. java手机解锁密码_Appium 解决手势密码 (java篇)
  8. 同济版《工程数学:线性代数》60条笔记全整理
  9. java代理模式的应用场景
  10. 利用IPV6实现宿舍远程连接实验室并免费上网
  11. 免费服务器领取步骤(详细)
  12. MIT人工智能实验室:如何做研究
  13. 优先队列三大利器——二项堆、斐波那契堆、Pairing 堆
  14. 改变思维(深度学习)
  15. 世界杯要来了,AI预测冠军哪家强?
  16. 音视频入门系列-音频篇(AAC)
  17. 关于Sunday算法以及实现
  18. 如何关闭电脑自动更新?
  19. 雨 霖 铃 【鉴赏】
  20. 注意:近期QQ陌生人经常发送QQ文件名为“果冻.r22”等文件!大家千万别接收或打开!

热门文章

  1. phpcmsv9全站搜索,不限模型
  2. 有关容器vector的一些用法
  3. Firebug Console API
  4. 半兽人野性重新觉醒 当初掘金将其放弃 如今野兽感恩回报火箭
  5. mikadonic-RHCE——NFS服务配置图解
  6. Lego-美团点评接口自动化测试实践
  7. restTemplate设置访问超时
  8. Android Studio项目目录结构介绍
  9. 四则运算2扩展---c++
  10. Linux下关于安全的一些小技巧大问题(图文)