Maison  >  Article  >  Tutoriel système  >  Comment configurer des groupes de sécurité pour les hôtes cloud par lots en Python ?

Comment configurer des groupes de sécurité pour les hôtes cloud par lots en Python ?

WBOY
WBOYoriginal
2024-07-02 03:16:31366parcourir

Comment configurer des groupes de sécurité pour les hôtes cloud par lots en Python ?

Le plus grand changement pour le personnel d'exploitation et de maintenance ces dernières années pourrait être l'émergence du cloud public. Je pense que de nombreux petits partenaires peuvent gérer leurs activités sur le cloud public. En raison des relations commerciales de l'entreprise, je suis personnellement entré en contact avec le cloud public. J'ai commencé à utiliser Amazon Cloud vers 2012, puis je suis progressivement entré en contact avec Alibaba, Tencent Cloud, etc. Au fur et à mesure que les activités de l'entreprise se développaient au niveau national, nous avons également utilisé de nombreux fournisseurs de cloud public nationaux au cours des dernières années, donc dans le cloud. exploitation et maintenance J'ai également accumulé une certaine expérience dans le passage des machines physiques traditionnelles à l'exploitation et à la maintenance du cloud public. Je pense personnellement que la plus grande question est de savoir si l'on peut penser en termes de cloud public pour obtenir une architecture d'entreprise sûre, stable, évolutive et économique. .

L'exploitation et la maintenance du cloud sont différentes de l'exploitation et de la maintenance traditionnelles. Par exemple, quiconque comprend le cloud public connaît le concept de groupe de sécurité. La fonction du groupe de sécurité est très similaire à celle du pare-feu. Dois-je donc configurer iptables ou. groupe de sécurité sur ma machine ? Dois-je configurer iptables après avoir configuré un groupe de sécurité ? Quelle est la différence entre eux ? Je pense que beaucoup de gens sont un peu confus à ce sujet. D'après mon expérience personnelle (car je n'ai jamais configuré iptables pour un hôte cloud depuis que je suis entré en contact avec Amazon), ma suggestion est que si vous pouvez utiliser des groupes de sécurité, vous ne devriez pas le faire. utilisez iptables pour gérer la machine, car ils ont des différences essentielles :

Tout d'abord, les groupes de sécurité interceptent sur l'hôte et iptables interceptent au niveau du système. Autrement dit, si quelqu'un veut vous attaquer, si vous utilisez la méthode du groupe de sécurité, le package d'attaque n'atteindra pas du tout votre machine.

Deuxièmement, la configuration d'iptables est un projet complexe. Si vous ne faites pas attention, les conséquences seront dévastatrices. Je suppose que ceux qui ont 2 ans d'expérience en exploitation et en maintenance devraient avoir l'expérience de se fermer à l'hôte si vous utilisez la sécurité. groupes Cet aspect est contrôlable, et même si quelque chose ne va pas, vous pouvez en gros récupérer rapidement.

Troisièmement, iptables écrit un grand nombre de règles répétées sur chaque serveur, et ces règles ne peuvent pas être gérées de manière hiérarchique. Les groupes de sécurité gèrent la configuration de sécurité de la machine par couche. Il vous suffit d'ajuster les parties que vous devez modifier. lots.

ok, c'est là que le concept est introduit. Ensuite, nous passerons aux choses pratiques, car configurer différents groupes de sécurité pour des centaines de machines est aussi un gros projet si vous le faites sur la console, je pense que vous deviendrez fou, alors. Ceci Lorsqu'il s'agit de gérer et d'exploiter ces groupes de sécurité par lots, l'API fournie par le cloud public est utilisée ici. Parce que le cloud public j a essentiellement sa propre interface API, appelant donc son API pour réaliser certaines opérations automatisées, je pense. est un must pour chaque utilisateur. Vous devez apprendre à utiliser le cloud public pour créer vos propres opérations et maintenance commerciales. Aujourd'hui, je vais partager comment ajouter et supprimer des groupes de sécurité par lots pour un grand nombre de machines. sur la base de qcloudcli. Le script est le suivant :

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import subprocess

import json

import sys

import argparse

def R(s):

return “%s[31;2m%s%s[0m”%(chr(27), s, chr(27))

def get_present_sgid(vmid):

descmd = ‘/usr/bin/qcloudcli dfw  DescribeSecurityGroups –instanceId ‘ + vmid.strip()

p = subprocess.Popen(descmd, shell=True, stdout=subprocess.PIPE)

output = p.communicate()[0]

res = json.loads(output)

sgid = []

for d in res[‘data’]:

sid = d[‘sgId’]

sgid.append(str(sid))

return sgid

def make_json(vmid,sgid):

pdata = {}

pdata[“instanceId”] = vmid

pdata[“sgIds”] = sgid

pjson = json.dumps(pdata)

return pjson

def add_sgid(vmfile,newsid):

fi = open(vmfile)

for v in fi:

v = v.strip()

res = get_present_sgid(v)

print res

res.append(newsid)

pjson = make_json(v,res)

modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'”

p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE)

output = p.communicate()[0]

print output

def remove_sgid(vmfile,newsid):

fi = open(vmfile)

for v in fi:

v = v.strip()

res = get_present_sgid(v)

res.remove(newsid)

pjson = make_json(v,res)

modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'”

p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE)

output = p.communicate()[0]

#print output

if __name__ == “__main__”:

parser=argparse.ArgumentParser(description=’change sgid’, usage=’%(prog)s [options]’)

parser.add_argument(‘-f’,’–file’, nargs=’?’, dest=’filehost’, help=’vmidfile’)

parser.add_argument(‘-g’,’–sgid’, nargs=’?’, dest=’sgid’, help=’sgid’)

parser.add_argument(‘-m’,’–method’, nargs=’?’, dest=’method’, help=’Methods only support to add or remove’)

if len(sys.argv)==1:

parser.print_help()

else:

args=parser.parse_args()

if args.filehost is not None and args.sgid is not None and args.method is not None:

if args.method == ‘add’:

add_sgid(args.filehost, args.sgid)

elif args.method == ‘remove’:

remove_sgid(args.filehost, args.sgid)

else:

print R(‘Methods only support to add or remove’)

else:

print R(‘Error format, please see the usage:’)

parser.print_help()

Ce script prend en charge l'ajout et la suppression d'un certain groupe de sécurité par lots. -f est suivi d'un fichier pour écrire une liste d'ID d'instance -g est suivi de l'ID du groupe de sécurité à ajouter et supprimer. et supprimer des opérations. Cela signifie ajouter ou supprimer. L'idée générale du script est d'abord de connaître la liste des groupes de sécurité de l'instance, puis d'ajouter ou de supprimer le nouvel ID de groupe de sécurité dans la liste. le script. Les amis sont invités à laisser des messages pour communiquer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn