Sichere PowerShell Automatisierung

PowerShellIn der heutigen Zeit ist die skriptbasierte Verwaltung von Server-Softwarelösungen aus der Arbeitswelt von Administratoren nicht mehr wegzudenken. Immer mehr Produkte und cloudbasierte Dienste lassen sich nur per PowerShell und individuelle Skripte sinnvoll administrieren. Gerade Office 365 ist hier ein unrühmliches Beispiel, da jeder Dienst über eine individuelle PowerShell-Schnittstelle verfügt.

Dieser Umstand hat zur Folge, dass Sie als Administrator oft Skripte zur Verwaltung komplexer Umgebungen einsetzen müssen, die Sie nicht selbst geschrieben haben. Die Skripte werden entweder von externen Dienstleister programmiert oder einfach aus dem Internet heruntergeladen. Hierbei implementiert jedes Skript, im Idealfall, eine eigene Protokollierung der ausgeführten Aktionen. 

Das Problem

Die PowerShell-Skripte sind in den meisten Fällen für die individuelle Ausführung durch einen Administrator konzipiert und weniger für die regelmäßige und vollautomatische Ausführung. Als Administrator möchten Sie sich aber um wichtiger Dinge kümmern, als z.B. die Anlage von Benutzerkonten im Active Directory, die E-Mail-Aktivierung von Konten oder die Erstellung von SharePoint Team-Sites.

Sie stehen u.a. vor folgenden Problemen:

  • Wie können Sie die Ausführung der PowerShell-Skripte automatisieren?
  • Wie können Sie die Eingabe benötigter Skript-Parameter sinnvoll mit einer Automatisierung kombinieren?
  • Wie können Sie die unterschiedlichen Skript-Anmeldeinformationen sicher verwalten?
  • Wie können Sie die Ausführung der PowerShell-Skripte delegieren?
  • Wie können Sie alle Ausführungen der Skripte einheitlich und auditfähig protokollieren?

Sie kommen mit der Nutzung der Windows Bordmitteln, wie dem Task Scheduler, schon recht weit. Aber Sie werden mir zustimmen, dass dieses Tool nicht gerade die bequemste Art ist, um PowerShell-Skripte sinnvoll und sicher zu automatisieren. 

Die Lösung

Ein Lösung für dieses Dilemma ist die Nutzung einer Softwarelösung, die uns ein Trennung zwischen dem ausführenden Skript-Kontext und dem Kontext des Anwenders, der ein Skript startet, bietet. Mit einem Rollen- und Berechtigungssystem kann ein Skript, in Abhängigkeit der Rollenzuweisung, unterschiedlich ausgeführt werden.

WIr benötigen also ein Lösung, die uns folgende Funktionen bietet:

  • Einfache und sichere Konfiguration von Benutzerkonten zur Skriptausführung, je nach Zielsystem
    • Active Directory
    • SharePoint Server
    • Exchange Server
    • Office 365 mit seinen unterschiedlichen Workloads
    • usw.
  • Einfache Automatisierung von PowerShell-Skriten
    • Zeitplänen 
    • individuelle externe Trigger, z.B. PRTG 
    • manueller Start
  • Rollenbasierte Delegierung von Skript-Konfigurationen
    • Helpdesk- und Support-Mitarbeiter (intern/exterm)
    • Regionale Administrator-Teams
    • IT-affine MIttarbeiter, z.B. DV-Ansprechpartner
  • Einheitliche und auditfähige Protokollierung aller Aktivitäten, der zugriffsberechtigten Personen und der Skripte
  • Eingehende und Ausgehende Schnittstellen mit anderen Softwarelösungen
    • dynamischen Auswahl von Skript-Parametern
    • Start von PowerShell-Skripten in Abhängikeit von externen Parameter
  • Webbasiertes Interface zur intuitiven Ausführung von delegierten Aufgaben
  • Minimierung des Sicherheitsrisikos
    • keine Installtion von PowerShell-Module auf den Arbeitsplätzen-PCs

Mit ScriptRunner steht eine professionelle Softwarelösung zur Verfügung, die uns all diese Möglichkeiten bietet. ScriptRunner ist ein sehr umfangreiches und leistungsfähiges Produkt zur PowerShell-Automatisierung. Aus meiner Sicht ist das Sicherheitskonzept, das für die Delegierung der Skript-Ausführungen eingesetzt wird, einer der Hauptgründe für das Produkt.

Das folgende Schaubild vereutlicht die Isoliserung von ScriptRunner für die sichere Ausführung von PowerShell-Skripten.

Sichere PowerShell Delegierung

Grafik © ScriptRunner

Die einzelnen Schritte sind:

  1. Administratoren und DevOps entwickeln PowerShell-Skripte für die Nutzung mit ScriptRunner
  2. ScriptRunner-Administratoren implementieren die Skripte und konfigurieren die Nutzergruppen
  3. Anwender können PowerSkripte entsprechend ihrer Rollenzugehötigkeit ausführen
  4. ScriptRunner führt die Scripte mit individuellen Anmeldeninformationen gegen lokale Systemen oder Cloud-Ressourcen aus
  5. Die Skript-Ergebnisse werden von ScriptRunner erfasst und protokolliert

Die Vorteile

Die Automatisierung und die wiederkehrende Ausführung führt zu einer Reduzierung der Betriebsrisiken und minimiert kostenintensive manuelle Nacharbeiten. Dies gelingt durch die hohe Reproduzierbarkeit der immer gleichen Aufgaben (Stichwort: Erstellung von Benutzern mit unterschiedlichen Attributen, je nach Fachabteilung). Durch ein Zonenmodell und die strikte Trennung der Ausführungsberechtigungen (Anwender, Automatisiserungsdienst, Skript-Credentials) erreichen Sie ein Maximum an Betriebssicherheit. 

Mit solch einer Aufteilung können Sie die Ausführung von Skripten nicht nur an das Helpdesk-Team delegieren, sondern sogar an DV-Ansprechpartner in Fachabtielungen. Die Weboberfläche ist intuitiv bedienbar und führt den Anwender sucher durch alle konfigurierten Eingabe- und Auwahlschritte. 

Ab Q1 2019 werden Sie speziell für Exchange Server, Exchange Online und Office 365 entwickelte Skripte zur Nutzung mit ScriptRunner in diesem Blog finden.

Links

Viel Spaß bei der Automatisierung!

Entdecke mehr von Granikos GmbH & Co. KG

Jetzt abonnieren, um weiterzulesen und auf das gesamte Archiv zuzugreifen.

Weiterlesen