欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python腳本修改阿里云的訪問控制列表的方法

 更新時間:2019年03月08日 10:34:37   作者:李永峰Billy  
這篇文章主要介紹了Python腳本修改阿里云的訪問控制列表的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

需求

對于部署在阿里云上的重要系統(tǒng)一般是不讓其他人訪問的,所以會在負載均衡(SLB)上加上訪問控制列表。而使用ASDL撥號上網(wǎng)的寬帶來說一般公網(wǎng)IP都不會固定的,會隨時變更公網(wǎng)IP,所以此腳本正是解決此需求。

說明

腳本運行前需要先安裝aliyun-python-sdk-core 和aliyun-python-sdk-slb 2個sdk,并且在阿里云賬戶里面創(chuàng)建access_key和access_secret。

腳本會查詢到目前的公網(wǎng)IP,如何創(chuàng)建本地一個文件將IP記錄到文件里,下次執(zhí)行時會將查詢到的IP和文件里的對比,如果IP和文件里記錄的IP不一致則將IP添加到訪問控制列表里。
最后只需要在服務(wù)器里每隔一段時間執(zhí)行一次此腳本就OK。

sdk 下載:https://developer.aliyun.com/tools/sdk#/python

提醒

如果是重要的數(shù)據(jù)在公網(wǎng)傳輸,還是盡量使用加密傳輸。畢竟阿里云的SSL 和IPSEC 也很完善了,推薦使用。

#!/usr/bin/env python3
#coding:utf-8

from aliyunsdkcore import client
import time,requests
from aliyunsdkslb.request.v20140515 import AddAccessControlListEntryRequest
from aliyunsdkcore.profile import region_provider
#region_provider.modify_point('slb', '<regionId>', 'slb.<regionId>.aliyuncs.com')

# 名稱:阿里云負載均衡白名單自動修改腳本

### 變量配置 ###
# 保存歷史IP地址的文件名
file_save_ipaddr = 'ipaddr.txt'
# 一些可以獲取本機出口IP的API地址
ip_api_list = 'http://icanhazip.com,http://ident.me,http://ifconfig.me,http://ipecho.net/plain,http://whatismyip.akamai.com,http://myip.dnsomatic.com'
# SLB 配置,此 Access Key 只需添加 ACL 的權(quán)限
aliyun_access_key = 'xxxxxxxxx'
aliyun_access_secret = 'xxxxxxxxxxxxxx'

# 在這里可以獲取region:https://help.aliyun.com/document_detail/40654.html
aliyun_region = 'cn-hangzhou'
# 訪問列表一(acl-bp1792k8uvk11xxpgu5l)
# 訪問列表二(acl-bp1okd1kud9a41kyjkja)
# 需要修改的ACL的ID,進入負載均衡控制臺 -> 訪問控制 -> 策略ID
aliyun_acl_id = ['acl-bp1okd1kud9a41kyjkja','acl-bp1792k8uvk11xxpgu5l']
### 配置結(jié)束 ###

def getExitIpAddr(ip_api_list):
  '''獲取出口IP地址'''
  url_list = str(ip_api_list).split(',')
  ip = None
  for url in url_list:
    resp = requests.get(url,timeout=3)
    if resp.status_code == 200:
      ip = resp.text.strip()
      break
  return ip

def setAcl(access_key,access_secret,region,acl_id,ip):
  '''修改ACL'''
  clt = client.AcsClient(access_key,access_secret,region)
  # 設(shè)置參數(shù)
  request = AddAccessControlListEntryRequest.AddAccessControlListEntryRequest()
  request.set_accept_format('json')
  request.add_query_param('AclId',acl_id)
  request.add_query_param('RegionId',region)
  request.add_query_param('Tags', 'API自動添加')
  request.add_query_param('AclEntrys', '[{{"entry":"{ip}/32","comment":"此處是注釋vvxyksv9kd"}}]'.format(ip=ip,d=time.strftime("%Y-%m-%d",time.localtime())))
    #添加ip并添加注釋

  # 發(fā)起請求
  response = clt.do_action_with_exception(request)

  print(response)

def getSavedIp(filename):
  '''獲取已保存的IP'''
  try:
    with open(filename,'r',encoding='utf-8') as f:
      return f.readline()
  except IOError:
    print("文件不存在")

def saveNewIp(filename,ipaddr):
  '''保存新IP'''
  with open(filename,'w',encoding='utf-8') as f:
    f.write(ipaddr)

def main():
  current_ip = getExitIpAddr(ip_api_list)
  saved_ip = getSavedIp(file_save_ipaddr)
  print('當前IP',current_ip)
  print('保存的IP',saved_ip)
  if current_ip == saved_ip:
    print('IP無變化')
    exit(0)
  else:
    for acl_id in aliyun_acl_id:
      setAcl(access_key=aliyun_access_key,
          access_secret=aliyun_access_secret,
          region=aliyun_region,
          acl_id=acl_id,
          ip=current_ip)
      time.sleep(5)
    saveNewIp(file_save_ipaddr,current_ip)

if __name__ == '__main__':
  main()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Numpy之random函數(shù)使用學(xué)習(xí)

    Numpy之random函數(shù)使用學(xué)習(xí)

    這篇文章主要介紹了Numpy之random使用學(xué)習(xí),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 基于Python實現(xiàn)一鍵獲取電腦瀏覽器的賬號密碼

    基于Python實現(xiàn)一鍵獲取電腦瀏覽器的賬號密碼

    發(fā)現(xiàn)很多人在學(xué)校圖書館喜歡用電腦占座,而且出去的時候經(jīng)常不鎖屏,為了讓大家養(yǎng)成良好的習(xí)慣,本文將分享一個小程序,可以快速獲取你存儲在電腦瀏覽器中的所有賬號和密碼,感興趣的可以了解一下
    2022-05-05
  • Python二叉樹初識(新手也秒懂!)

    Python二叉樹初識(新手也秒懂!)

    二叉樹是一種簡單的樹形結(jié)構(gòu),其每個節(jié)點的分支節(jié)點數(shù)有0,1或2個,下面這篇文章主要給大家介紹了關(guān)于Python二叉樹的相關(guān)資料,本文介紹的非常通俗易懂,新手也秒懂,需要的朋友可以參考下
    2022-05-05
  • python實現(xiàn)圖像識別的示例代碼

    python實現(xiàn)圖像識別的示例代碼

    這篇文章主要介紹了python實現(xiàn)圖像識別的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python沖頂大會 快來答題!

    Python沖頂大會 快來答題!

    直播答題沖頂大會,你玩了嗎?本文為大家分享了10道Python測試題,你答對1道算我輸
    2018-01-01
  • Python中給List添加元素的4種方法分享

    Python中給List添加元素的4種方法分享

    這篇文章主要介紹了Python中給List添加元素的4種方法分享,本文講解了append()、extend()、insert()、加號等4個方法,并給出了操作實例,需要的朋友可以參考下
    2014-11-11
  • Tornado高并發(fā)處理方法實例代碼

    Tornado高并發(fā)處理方法實例代碼

    這篇文章主要介紹了Tornado高并發(fā)處理方法實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python logging日志模塊以及多進程日志詳解

    python logging日志模塊以及多進程日志詳解

    本篇文章主要介紹了python logging日志模塊以及多進程日志詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 基于TensorFlow的CNN實現(xiàn)Mnist手寫數(shù)字識別

    基于TensorFlow的CNN實現(xiàn)Mnist手寫數(shù)字識別

    這篇文章主要為大家詳細介紹了基于TensorFlow的CNN實現(xiàn)Mnist手寫數(shù)字識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 使用python存儲網(wǎng)頁上的圖片實例

    使用python存儲網(wǎng)頁上的圖片實例

    今天小編就為大家分享一篇使用python存儲網(wǎng)頁上的圖片實例,具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論