Fondamentalement, il suffit d'ajouter et de mettre à jour des règles de groupe de sécurité, de sorte qu'un groupe de sécurité a déjà été défini pour la cible.
Mon_token. Utilisez txt `` et `` `` my_ip.txt
`` `set_acl.py
#!/usr/bin/env python
import requests
import json
import os
class set_rule():
def __init__(self): #Initialisation
my_ip = ""
my_token = ""
my_rule =""
def set_data(self,rule): #Ensemble d'identifiant de groupe de sécurité, jeton, IP actuelle
self.my_rule = rule
with open('my_ip.txt','r') as f:
self.my_ip = f.read()
with open('my_token.txt','r') as f:
self.my_token = f.read()
def remove(self): #Supprimer les anciennes informations d'enregistrement
rule_data = ''
rule_flug = os.path.exists("./my_rule.txt")
if rule_flug: #Ne pas supprimer si le fichier n'existe pas
with open('my_rule.txt', 'r') as f:
rule_data = f.read()
url='https://networking.tyo1.conoha.io/v2.0/security-group-rules/'+rule_data
header={'Accept':'application/json','X-Auth-Token':''}
header['X-Auth-Token']=self.my_token
r = requests.delete(url,headers=header)
print "delete_rule_data="+rule_data
if rule_flug == False:
print "no_rule_data"
def set_ip(self): #Ajouter une règle au groupe de sécurité Paramètre pour autoriser la communication TCP à partir d'une adresse IP spécifiée externe, aucune restriction de port
url = "https://networking.tyo1.conoha.io/v2.0/security-group-rules"
header = {'Accept':'application/json','X-Auth-Token':''}
header['X-Auth-Token']=self.my_token
data = {"security_group_rule":{"direction": "ingress","ethertype": "IPv4","security_group_id":"","protocol":"tcp" ,"remote_ip_prefix":""}}
data["security_group_rule"]["security_group_id"]=self.my_rule
data["security_group_rule"]["remote_ip_prefix"]=self.my_ip
r = requests.post(url,data=json.dumps(data),headers=header)
with open('rule_data.json','w') as f:
f.write(r.text)
with open('rule_data.json','r') as f:
jsonData = json.loads(f.read())
with open('my_rule.txt','w') as f: #ID de règle d'enregistrement
f.write(jsonData["security_group_rule"]["id"])
print "set_rule="+jsonData["security_group_rule"]["id"]
def set_rule_main(group): #Traitement principal
groupid = group
rule_setter = set_rule()
rule_setter.set_data(groupid)
rule_setter.remove()
rule_setter.set_ip()
if __name__ == '__main__':
set_rule_main("ID du groupe de sécurité")
Pour les mises à jour uniquement, Get Token et Get IP et cette fois Importez le script de et utilisez-le pour le traitement par lots.
set_acl_main.py
#!/usr/bin/env python
import ip
import get_token
import set_acl
get_ip_url = "http://www.axisnetworks.biz/tools/gip/"
user = 'XXXXXX'
key = 'XXXXXX'
tenantId = 'XXXXXXX'
security_group = "XXXXXXXXX"
if __name__ == '__main__':
ip.ip_get(get_ip_url)
get_token.token_get_main(user,key,tenantId)
set_acl.set_rule_main(security_group)
J'avais défini mon adresse IP domestique dans l'ACL, mais lorsque mon routeur domestique a redémarré, l'adresse IP a changé et il était difficile de la réinitialiser à ce moment-là, alors je l'ai créée, mais lorsque j'ai changé la ligne récemment, c'était presque Ce n'est plus nécessaire.
Recommended Posts