Heim >System-Tutorial >LINUX >Wie konfiguriere ich Sicherheitsgruppen für Cloud-Hosts stapelweise in Python?
Die größte Veränderung für das Betriebs- und Wartungspersonal in den letzten Jahren könnte das Aufkommen der Public Cloud sein. Ich glaube, dass viele kleine Partner ihre Geschäfte in der Public Cloud betreiben. Ich persönlich bin sehr stark mit der Public Cloud in Berührung gekommen Ich begann etwa 2012 mit der Nutzung von Amazon Cloud und kam später nach und nach mit inländischen Alibaba, Tencent Cloud usw. in Kontakt. Da sich das Geschäft des Unternehmens im Inland entwickelte, haben wir in den letzten Jahren auch viele inländische öffentliche Cloud-Anbieter genutzt, also in der Cloud Betrieb und Wartung Ich habe auch einige Erfahrungen beim Übergang von herkömmlichen physischen Maschinen zum Betrieb und zur Wartung der öffentlichen Cloud gesammelt. Ich persönlich denke, die größte Frage ist, ob man in der öffentlichen Cloud denken kann, um eine sichere, stabile, skalierbare und wirtschaftliche Geschäftsarchitektur zu erreichen .
Der Betrieb und die Wartung der Cloud unterscheiden sich vom herkömmlichen Betrieb und der Wartung. Jeder, der sich mit der öffentlichen Cloud auskennt, kennt die Funktion einer Sicherheitsgruppe und muss daher iptables einrichten Sicherheitsgruppe auf meinem Computer? Muss ich iptables einrichten, nachdem ich eine Sicherheitsgruppe eingerichtet habe? Was ist der Unterschied zwischen ihnen? Ich glaube, dass viele Leute darüber etwas verwirrt sind (da ich seit meinem Kontakt mit Amazon noch nie iptables für einen Cloud-Host konfiguriert habe), ist mein Vorschlag, dass Sie, wenn Sie Sicherheitsgruppen verwenden können, dies nicht tun sollten Verwenden Sie iptables, um die Maschine zu verwalten, da sie wesentliche Unterschiede aufweisen:
Erstens fangen Sicherheitsgruppen auf dem Host und iptables auf Systemebene ab. Das heißt, wenn jemand Sie angreifen möchte und Sie die Sicherheitsgruppenmethode verwenden, erreicht das Angriffspaket Ihren Computer überhaupt nicht.
Zweitens ist die Konfiguration von iptables ein komplexes Projekt. Wenn Sie nicht aufpassen, werden die Konsequenzen verheerend sein, wenn Sie über zwei Jahre Betriebs- und Wartungserfahrung verfügen Gruppen Dieser Aspekt ist kontrollierbar, und selbst wenn etwas schief geht, können Sie sich grundsätzlich schnell erholen.
Drittens schreibt iptables eine große Anzahl wiederholter Regeln auf jedem Server, und diese Regeln können nicht hierarchisch verwaltet werden. Sie müssen nur die Teile anpassen, die Sie verwalten müssen Chargen.
OK, hier wird das Konzept vorgestellt. Als nächstes kommen wir zu den praktischen Dingen, denn auch das Konfigurieren verschiedener Sicherheitsgruppen für Hunderte von Maschinen ist ein großes Projekt. Wenn Sie es auf der Konsole tun, werden Sie wahrscheinlich verrückt Wenn es darum geht, diese Sicherheitsgruppen stapelweise zu verwalten und zu betreiben, wird hier die von der öffentlichen Cloud bereitgestellte API verwendet. Da die öffentliche Cloud grundsätzlich über eine eigene API-Schnittstelle verfügt, werden meiner Meinung nach ihre APIs aufgerufen, um einige automatisierte Vorgänge zu erreichen ist ein Muss für jeden Benutzer. Sie müssen lernen, wie Sie die öffentliche Cloud zum Aufbau Ihres eigenen Geschäftsbetriebs und zur Wartung verwenden. Heute werde ich Ihnen zeigen, wie Sie Sicherheitsgruppen für eine große Anzahl von Maschinen hinzufügen und entfernen auf Basis von qcloudcli. Das Skript lautet wie folgt:
#!/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()
Dieses Skript unterstützt das stapelweise Hinzufügen und Löschen einer bestimmten Sicherheitsgruppe. Auf -f folgt eine Liste der hinzuzufügenden und zu löschenden Instanz-IDs Die Gesamtidee des Skripts besteht darin, zunächst die Sicherheitsgruppenliste der Instanz herauszufinden und dann die neue Sicherheitsgruppen-ID zur Liste hinzuzufügen oder zu entfernen Freunde können gerne Nachrichten zur Kommunikation hinterlassen.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Sicherheitsgruppen für Cloud-Hosts stapelweise in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!