Ausführen von Automation-Runbooks in einem Hybrid Runbook Worker

Wichtig

  • Der Azure Automation Agent-basierte Benutzer-Hybrid Runbook Worker (Windows und Linux) wird am 31. August 2024 eingestellt und wird nach diesem Datum nicht mehr unterstützt. Sie müssen die Migration vorhandener Agent-basierter Benutzer-Hybrid Runbook Worker zu erweiterungsbasierten Workern vor dem 31. August 2024 abschließen. Darüber hinaus ist ab dem 1. November 2023 das Erstellen neuer Agent-basierter Hybrid Worker nicht mehr möglich. Weitere Informationen
  • Das ausführende Azure Automation-Konto wird am 30. September 2023 eingestellt und durch verwaltete Identitäten ersetzt. Vor diesem Datum müssen Sie mit der Migration Ihrer Runbooks beginnen, um verwaltete Identitäten zu verwenden. Lesen Sie die Informationen unter Migration von vorhandenen ausführenden Konten zur verwalteten Identität, um vor dem 30. September 2023 mit der Migration der Runbooks von Run As-Konten zu verwalteten Identitäten zu beginnen.

Von Runbooks, die in einem Hybrid Runbook Worker ausgeführt werden, werden in der Regel Ressourcen auf dem lokalen Computer oder in der lokalen Umgebung verwaltet, in der der Worker bereitgestellt ist. Runbooks in Azure Automation verwalten üblicherweise Ressourcen in der Azure-Cloud. Auch wenn sie unterschiedlich verwendet werden, sind Runbooks, die in Azure Automation ausgeführt werden, und Runbooks, die auf einem Hybrid Runbook Worker ausgeführt werden, von der Struktur her identisch.

Wenn Sie ein Runbook zur Ausführung auf einem Hybrid Runbook Worker erstellen, sollten Sie es auf dem Computer testen, der den Worker hostet. Auf dem Hostcomputer stehen alle PowerShell-Module sowie der Netzwerkzugriff zur Verfügung, die bzw. den Sie für die Verwaltung der lokalen Ressourcen benötigen. Sobald Sie das Runbook auf dem Hybrid Runbook Worker-Computer getestet haben, können Sie es in die Azure Automation-Umgebung hochladen, wo es auf dem Worker ausgeführt werden kann.

Planen von Azure-Diensten mit Firewallschutz

Durch das Aktivieren von Azure Firewall für Azure Storage, Azure Key Vault oder Azure SQL wird der Zugriff von Azure Automation-Runbooks für diese Dienste blockiert. Der Zugriff wird auch dann blockiert, wenn die Firewallausnahme zum Zulassen vertrauenswürdiger Microsoft-Dienste aktiviert ist, da Automation nicht zur Liste der vertrauenswürdigen Dienste gehört. Bei aktivierter Firewall kann der Zugriff nur mithilfe eines Hybrid Runbook Workers und eines VNT-Dienstendpunkts erfolgen.

Planen des Verhaltens von Runbookaufträgen

Azure Automation behandelt Aufträge in Hybrid Runbook Workern anders als Aufträge, die in Cloud-Sandboxes ausgeführt werden. Bei einem zeitintensiven Runbook müssen Sie sicherstellen, dass das Runbook auch nach einem möglichen Neustart stabil läuft. Ausführliche Informationen zum Auftragsverhalten finden Sie unter Hybrid Runbook Worker-Aufträge.

Dienstkonten

Windows Hybrid Worker

Aufträge für Hybrid Runbook Worker werden mit dem lokalen Konto System ausgeführt.

Hinweis

  • PowerShell 5.1, PowerShell 7.1 (Vorschau), Python 2.7 und Python 3.8-Runbooks werden sowohl für erweiterungsbasierte als auch für Agent-basierte Windows Hybrid Runbook Worker unterstützt. Stellen Sie für Agent-basierte Mitarbeiter sicher, dass die Windows Hybrid Worker-Version 7.3.12960 oder höher ist.
  • PowerShell 7.2- und Python 3.10-Runbooks (Vorschau) werden nur für erweiterungsbasierte Windows Hybrid Worker unterstützt. Stellen Sie sicher, dass die Windows Hybrid Worker-Erweiterungsversion 1.1.11 oder höher ist.

Hinweis

Führen Sie die folgenden Schritte aus, um Umgebungsvariable in Windows-Systemen zu erstellen:

  1. Wechseln Sie zu Einstellungen>System>Erweiterte Systemeinstellungen.
  2. Wählen Sie unter Systemeigenschaften die Option Umgebungsvariablen aus.
  3. Wählen Sie in SystemvariablenNeu aus.
  4. Geben Sie Variablennamen und Variablenwert ein und wählen Sie dann OK aus.
  5. Starten Sie den virtuellen Computer neu, oder melden Sie sich vom aktuellen Benutzer ab und melden Sie sich an, um die Umgebungsvariablenänderungen zu implementieren.

PowerShell 7.2

Um PowerShell 7.2-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie PowerShell auf dem Hybrid Worker. Weitere Informationen siehe Installieren von PowerShell unter Windows.

Erstellen Sie nach Abschluss der PowerShell 7.2-Installation eine Umgebungsvariable mit variablem Namen als powershell_7_2_path und Variablenwert als Speicherort der ausführbaren PowerShell. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.

PowerShell 7.1

Um PowerShell 7.1-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie PowerShell auf dem Hybrid Worker. Weitere Informationen siehe Installieren von PowerShell unter Windows. Stellen Sie sicher, dass Sie die PowerShell-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.

Python 3.10

Um Python 3.10-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows.

Nachdem die Installation von Python 3.10 abgeschlossen ist, erstellen Sie eine Umgebungsvariable mit variablem Namen als python_3_10_path- und Variablenwert als Speicherort des ausführbaren Python. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.

Python 3.8

Um Python 3.8-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows. Erstellen Sie Umgebungsvariable PYTHON_3_PATH für Python 3.8-Runbooks, und stellen Sie sicher, dass Sie den Speicherort des ausführbaren Python als Variablenwerthinzufügen. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.

Wenn sich die ausführbare Python-Datei am Standardspeicherort C:\WPy64-3800\python-3.8.0.amd64\python.exebefindet, müssen Sie die Umgebungsvariable nicht erstellen.

Python 2.7

Um Python 2.7-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows. Erstellen Sie die UmgebungsvariablePYTHON_2_PATH für Python 2.7-Runbooks, und stellen Sie sicher, dass Sie den Speicherort der ausführbaren Python-Datei als Variablenwert hinzufügen. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.

Wenn sich die ausführbare Python-Datei am Standardspeicherort C:\Python27\python.exe befindet, müssen Sie die Umgebungsvariable nicht erstellen.

Linux Hybrid Worker

Hinweis

  • PowerShell 5.1, PowerShell 7.1 (Vorschau), Python 2.7, Python 3.8 Runbooks werden sowohl für erweiterungsbasierte als auch Agent-basierte Linux Hybrid Runbook Workers unterstützt. Stellen Sie für Agent-basierte Worker sicher, dass mindestens Linux Hybrid Runbook Worker-Version 1.7.5.0 vorliegt.
  • PowerShell 7.2- und Python 3.10-Runbooks (Vorschau) werden nur für erweiterungsbasierte Linux Hybrid Worker unterstützt. Stellen Sie sicher, dass die Linux Hybrid Worker-Erweiterungsversion 1.1.11 oder höher ist.

Hinweis

Führen Sie die folgenden Schritte aus, um Umgebungsvariable in Linux-Systemen zu erstellen:

  1. Öffnen Sie /etc/environment.
  2. Erstellen Sie eine neue Umgebungsvariable, indem Sie VARIABLE_NAME="variable_value" in einer neuen Zeile in /etc/environment hinzufügen (VARIABLE_NAME ist der Name der neuen Umgebungsvariable und variable_value der Wert, der ihr zugewiesen werden soll).
  3. Starten Sie den virtuellen Computer neu, oder melden Sie sich vom aktuellen Benutzer ab und melden Sie sich an, nachdem die Änderungen an /etc/environment gespeichert wurden, um Umgebungsvariablenänderungen zu implementieren.

PowerShell 7.2

Um PowerShell 7.2-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie die PowerShell-Datei auf dem Hybrid Worker. Weitere Informationen finden Sie unter Installieren von PowerShell unter Linux.

Erstellen Sie nach Abschluss der Installation von PowerShell 7.2 eine Umgebungsvariable mit dem Variablennamenpowershell_7_2_path und dem Variablenwert als Speicherort der ausführbaren PowerShell-Datei. Starten Sie den Hybrid Runbook Worker neu, nachdem eine Umgebungsvariable erfolgreich erstellt wurde.

Python 3.10

Um Python 3.10-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Weitere Informationen finden Sie unter Installieren von Python 3.10 unter Linux.

Erstellen Sie nach Abschluss der Python 3.10-Installation eine Umgebungsvariable mit dem Variablennamenpython_3_10_path und dem Variablenwert als Speicherort der ausführbaren Python-Datei. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.

Python 3.8

Um Python 3.8-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Stellen Sie sicher, dass Sie die ausführbare Python-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.

Python 2.7

Um Python 2.7-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Stellen Sie sicher, dass Sie die ausführbare Python-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.

Konfigurieren von Runbookberechtigungen

Definieren Sie Berechtigungen für Ihr Runbook, um die Ausführung im Hybrid Runbook Worker zu ermöglichen:

  • Lassen Sie das Runbook sich selbst bei lokalen Ressourcen authentifizieren.
  • Konfigurieren Sie die Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen.
  • Geben Sie Hybrid Worker-Anmeldeinformationen an, um einen Benutzerkontext für alle Runbooks bereitzustellen.

Verwenden der Runbookauthentifizierung bei lokalen Ressourcen

Wenn Sie ein Runbook vorbereiten, das sich selbst bei Ressourcen authentifiziert, verwenden Sie in Ihrem Runbook die Objekte für Anmeldeinformationen und Zertifikat. Es gibt verschiedene Cmdlets, mit denen Sie Anmeldeinformationen angeben können, damit sich das Runbook bei verschiedenen Ressourcen authentifizieren kann. Das folgende Beispiel zeigt einen Teil eines Runbooks, mit dem ein Computer neu gestartet wird. Es werden Anmeldeinformationen aus einem Anmeldeinformationsobjekt und der Name des Computers aus einem Variablenobjekt abgerufen. Anschließend werden diese Werte im Cmdlet Restart-Computer eingesetzt.

$Cred = Get-AutomationPSCredential -Name "MyCredential"
$Computer = Get-AutomationVariable -Name "ComputerName"

Restart-Computer -ComputerName $Computer -Credential $Cred

Sie können auch eine Aktivität des Typs InlineScript verwenden. InlineScript ermöglicht das Ausführen von Codeblöcken auf einem anderen Computer mit Anmeldeinformationen.

Verwenden der Runbookauthentifizierung mit verwalteten Identitäten

Von Hybrid Runbook Workern, die auf virtuellen Azure-Computern ausgeführt werden, können verwaltete Identitäten für die Authentifizierung bei Azure-Ressourcen genutzt werden. Der Einsatz verwalteter Identitäten für Azure-Ressourcen anstelle ausführender Konten bietet Vorteile, da die folgenden Schritte nicht erforderlich sind:

  • Das Exportieren des Zertifikats für das ausführende Konto und anschließende Importieren in den Hybrid Runbook Worker.
  • Das Verlängern des vom ausführenden Konto verwendeten Zertifikats.
  • Das Verarbeiten des Verbindungsobjekts des ausführenden Kontos.

Es gibt zwei Möglichkeiten, die verwalteten Identitäten in Hybrid Runbook Worker-Skripts zu verwenden.

  1. Verwenden der systemseitig zugewiesenen verwalteten Identität für ein Automation-Konto:

    1. Konfigurieren Sie eine systemseitig zugewiesene verwaltete Identität für das Automation-Konto.

    2. Gewähren Sie dieser Identität die erforderlichen Berechtigungen innerhalb des Abonnements, damit sie ihre Aufgabe ausführen kann.

    3. Aktualisieren Sie das Runbook so, dass das Cmdlet Connect-AzAccount mit dem Parameter Identity zur Authentifizierung bei Azure-Ressourcen verwendet wird. Diese Konfiguration reduziert die Notwendigkeit, ein ausführendes Konto zu verwenden und die zugehörige Kontoverwaltung durchzuführen.

      # Ensures you do not inherit an AzContext in your runbook
      Disable-AzContextAutosave -Scope Process
      
      # Connect to Azure with system-assigned managed identity
      $AzureContext = (Connect-AzAccount -Identity).context
      
      # set and store context
      $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile
      $AzureContext
      
      # Get all VM names from the subscription
      Get-AzVM -DefaultProfile $AzureContext | Select Name
      

    Hinweis

    Es ist nicht möglich, die benutzerseitig verwaltete Identität des Automation-Kontos für eine Hybrid Runbook Worker-Instanz zu verwenden, es muss die systemseitig verwaltete Identität des Automation-Kontos sein.

  2. Verwenden Sie für eine als Hybrid Runbook Worker ausgeführte Azure-VM die verwaltete VM-Identität. In diesem Fall können Sie entweder die benutzerseitig zugewiesene verwaltete Identität der VM ODER die systemseitig zugewiesene verwaltete Identität der VM verwenden.

    Hinweis

    Dies funktioniert NICHT in einem Automation-Konto, das mit einer verwalteten Automation-Konto-Identität konfiguriert wurde. Sobald die verwaltete Automation-Konto-Identität aktiviert ist, kann die verwaltete Identität der VM nicht mehr verwendet werden, und dann ist es nur möglich, die systemseitig zugewiesene verwaltete Automation-Konto-Identität wie in Option 1 oben erwähnt zu verwenden.

    Verwenden Sie eine der folgenden verwalteten Identitäten:

    1. Konfigurieren einer systemseitig verwalteten Identität für die VM.
    2. Gewähren Sie dieser Identität die erforderlichen Berechtigungen innerhalb des Abonnements, damit sie ihre Aufgaben ausführen kann.
    3. Aktualisieren Sie das Runbook so, dass das Cmdlet Connect-Az-Account mit dem Parameter Identity zur Authentifizierung bei Azure-Ressourcen verwendet wird. Diese Konfiguration reduziert die Notwendigkeit, ein ausführendes Konto zu verwenden und die zugehörige Kontoverwaltung durchzuführen.
        # Ensures you do not inherit an AzContext in your runbook
        Disable-AzContextAutosave -Scope Process
    
        # Connect to Azure with system-assigned managed identity
        $AzureContext = (Connect-AzAccount -Identity).context
    
        # set and store context
        $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile
        $AzureContext
    
        # Get all VM names from the subscription
        Get-AzVM -DefaultProfile $AzureContext | Select Name
    

Ein als Hybrid Runbook Worker ausgeführter Server oder VMware vSphere-VM mit Azure Arc-Unterstützung verfügt bereits über eine integrierte systemseitig zugewiesene verwaltete Identität, die für die Authentifizierung verwendet werden kann.

  1. Sie können diesen Zugriff der verwalteten Identität auf Ressourcen in Ihrem Abonnement im Blatt „Zugriffssteuerung“ (IAM) für die Ressource gewähren, indem Sie die entsprechende Rollenzuweisung hinzufügen.

    Screenshot of how to select managed identities.

  2. Fügen Sie die verwaltete Azure Arc-Identität wie erforderlich Ihrer ausgewählten Rolle hinzu.

    Screenshot of how to add role assignment in the Access control blade.

Hinweis

Dies funktioniert NICHT in einem Automation-Konto, das mit einer verwalteten Automation-Konto-Identität konfiguriert wurde. Sobald die verwaltete Automation-Konto-Identität aktiviert ist, kann die verwaltete Arc-Identität nicht mehr verwendet werden, und dann ist es nur möglich, die systemseitig zugewiesene verwaltete Automation-Konto-Identität wie in Option 1 oben erwähnt zu verwenden.

Hinweis

Die Azure-Kontexte werden standardmäßig für die Verwendung zwischen PowerShell-Sitzungen gespeichert. Wenn ein vorheriges Runbook für den Hybrid Runbook Worker bei Azure authentifiziert wurde, wird dieser Kontext möglicherweise auf dem Datenträger im PowerShell-Profil des Systems beibehalten, wie in der Microsoft-Dokumentation unter Azure PowerShell-Kontextobjekte erläutert. Beispielsweise kann ein Runbook mit Get-AzVM alle VMs im Abonnement ohne Aufruf von Connect-AzAccount zurückgeben, und der Benutzer kann auf Azure-Ressourcen zugreifen, ohne sich innerhalb dieses Runbook zu authentifizieren. Sie können die automatische Kontextspeicherung in Azure PowerShell deaktivieren, wie hier beschrieben.

Verwenden der Runbook-Authentifizierung mit Hybrid Worker-Anmeldeinformationen

Um zu vermeiden, dass Ihr Runbook seine eigene Authentifizierung bei lokalen Ressourcen bereitstellen muss, können Sie für eine Hybrid Runbook Worker-Gruppe Hybrid Worker-Anmeldeinformationen angeben. Damit Sie Hybrid Worker-Anmeldeinformationen angeben können, müssen Sie ein Anmeldeinformationsobjekt mit Zugriff auf lokale Ressourcen definieren. Zu diesen Ressourcen gehören Zertifikatsspeicher und alle Runbooks, die unter diesen Anmeldeinformationen auf einem Hybrid Runbook Worker in der Gruppe ausgeführt werden.

  • Der Benutzername für die Anmeldeinformationen muss eines der folgenden Formate haben:

    • Domäne\Benutzername
    • benutzername@domäne
    • Benutzername (für Konten, die für den lokalen Computer lokal sind)
  • Um das PowerShell-Runbook Export-RunAsCertificateToHybridWorker verwenden zu können, müssen Sie die AZ-Module for Azure Automation auf dem lokalen Computer installieren.

Verwenden eines Anmeldeinformationsobjekts für eine Hybrid Runbook Worker-Gruppe

Standardmäßig werden die Hybridaufträge im Kontext des Systemkontos ausgeführt. Um Hybridaufträge jedoch unter einem anderen Anmeldeinformationsobjekt auszuführen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie ein Anmeldeinformationsobjekt mit Zugriff auf lokale Ressourcen.
  2. Öffnen Sie im Azure-Portal das Automation-Konto.
  3. Wählen Sie Hybrid Worker-Gruppen und dann eine bestimmte Gruppe aus.
  4. Wählen Sie Settingsaus.
  5. Ändern Sie den Wert von Hybrid Worker-Anmeldeinformationen von Standard in Benutzerdefiniert.
  6. Wählen Sie die Anmeldeinformationen aus, und klicken Sie auf Speichern.
  7. Wenn die folgenden Berechtigungen für „Benutzerdefinierte“ Benutzer nicht zugewiesen sind, werden Aufträge möglicherweise angehalten.
Ressourcentyp Ordnerberechtigungen
Azure VM C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (Lesen und Ausführen)
Server mit Arc-Unterstützung C:\ProgramData\AzureConnectedMachineAgent\Tokens (Lesen)
C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (Lesen und Ausführen)

Hinweis

Linux Hybrid Worker unterstützt keine Hybrid Worker-Anmeldeinformationen.

Starten eines Runbooks auf einem Hybrid Runbook Worker

Unter Starten eines Runbooks in Azure Automation werden die verschiedenen Methoden zum Starten eines Runbooks beschrieben. Beim Starten eines Runbooks auf einem Hybrid Runbook Worker wird die Option Ausführen auf verwendet, mit der Sie den Namen einer Hybrid Runbook Worker-Gruppe angeben können. Wenn eine Gruppe angegeben wird, ruft einer der Worker in dieser Gruppe das Runbook ab und führt es aus. Wenn Ihr Runbook diese Option nicht angibt, führt Azure Automation das Runbook wie gewohnt aus.

Wenn Sie ein Runbook im Azure-Portal starten, wird die Option Ausführen auf angezeigt, für die Sie entweder Azure oder Hybrid Worker auswählen können. Wählen Sie Hybrid Worker aus, um in einer Dropdownliste die gewünschte Hybrid Runbook Worker-Gruppe auszuwählen.

Screenshot showing how to select the Hybrid Runbook Worker group.

Wenn Sie ein Runbook mit PowerShell starten, verwenden Sie das Cmdlet Start-AzAutomationRunbook mit dem Parameter RunOn. Das folgende Beispiel verwendet Windows PowerShell, um ein Runbook namens Test-Runbook in einer Hybrid Runbook Worker-Gruppe namens MyHybridGroup zu starten.

Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -RunOn "MyHybridGroup"

Arbeiten mit signierten Runbooks auf einem Windows Hybrid Runbook Worker

Sie können eine Windows Hybrid Runbook Worker so konfigurieren, dass nur signierte Runbooks ausgeführt werden.

Wichtig

Wenn Sie einen Hybrid Runbook Worker dafür konfiguriert haben, nur signierte Runbooks auszuführen, können von dem Worker keine nicht signierten Runbooks mehr ausgeführt werden.

Hinweis

PowerShell 7.x unterstützt keine signierten Runbooks für Windows und Linux Hybrid Runbook Worker.

Erstellen des Signaturzertifikats

In folgendem Beispiel wird ein selbstsigniertes Zertifikat erstellt, das für das Signieren von Runbooks verwendet werden kann. Mit diesem Code wird das Zertifikat erstellt und exportiert, damit der Runbook Worker es später importieren kann. Der Fingerabdruck wird auch für die spätere Verwendung beim Verweisen auf das Zertifikat zurückgegeben.

# Create a self-signed certificate that can be used for code signing
$SigningCert = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\my `
    -Subject "CN=contoso.com" `
    -KeyAlgorithm RSA `
    -KeyLength 2048 `
    -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
    -KeyExportPolicy Exportable `
    -KeyUsage DigitalSignature `
    -Type CodeSigningCert

# Export the certificate so that it can be imported to the hybrid workers
Export-Certificate -Cert $SigningCert -FilePath .\hybridworkersigningcertificate.cer

# Import the certificate into the trusted root store so the certificate chain can be validated
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\Root

# Retrieve the thumbprint for later use
$SigningCert.Thumbprint

Importieren von Zertifikaten und Konfigurieren von Workern für die Signaturprüfung

Kopieren Sie das erstellte Zertifikat in jeden Hybrid Runbook Worker in einer Gruppe. Führen Sie das folgende Skript aus, um das Zertifikat zu importieren und die Worker so zu konfigurieren, dass die Signaturüberprüfung auf Runbooks verwendet wird.

# Install the certificate into a location that will be used for validation.
New-Item -Path Cert:\LocalMachine\AutomationHybridStore
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\AutomationHybridStore

# Import the certificate into the trusted root store so the certificate chain can be validated
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\Root

# Configure the hybrid worker to use signature validation on runbooks.
Set-HybridRunbookWorkerSignatureValidation -Enable $true -TrustedCertStoreLocation "Cert:\LocalMachine\AutomationHybridStore"

Signieren von Runbooks mithilfe des Zertifikats

Da die Hybrid Runbook Worker nur für die Verwendung signierter Runbooks konfiguriert sind, müssen Sie Runbooks signieren, die auf dem Hybrid Runbook Worker verwendet werden sollen. Verwenden Sie den folgenden PowerShell-Beispielcode, um diese Runbooks zu signieren.

$SigningCert = ( Get-ChildItem -Path cert:\LocalMachine\My\<CertificateThumbprint>)
Set-AuthenticodeSignature .\TestRunbook.ps1 -Certificate $SigningCert

Nachdem ein Runbook signiert wurde, muss es in Ihr Automation-Konto importiert und mithilfe des Signaturblocks veröffentlicht werden. Informationen zum Importieren von Runbooks finden Sie unter Importieren eines Runbooks.

Hinweis

Verwenden Sie nur Klartextzeichen in Ihrem Runbookcode, einschließlich Kommentaren. Die Verwendung von Zeichen mit diakritischen Markierungen, z. B. á oder ñ, führt zu einem Fehler. Wenn Azure Automation Ihren Code herunterlädt, werden die Zeichen durch ein Fragezeichen ersetzt und die Signatur schlägt mit der Meldung „Signaturhash-Validierungsfehler“ fehl.

Arbeiten mit signierten Runbooks auf einem Linux Hybrid Runbook Worker

Um mit signierten Runbooks arbeiten zu können, muss ein Linux Hybrid Runbook Worker auf dem lokalen Computer über die GPG-Datei verfügen.

Wichtig

Wenn Sie einen Hybrid Runbook Worker dafür konfiguriert haben, nur signierte Runbooks auszuführen, können von dem Worker keine nicht signierten Runbooks mehr ausgeführt werden.

Führen Sie die folgenden Schritte aus, um die Konfiguration abzuschließen:

  • Erstellen eines GPG-Schlüsselbunds und -Schlüsselpaars
  • Bereitstellen des Schlüsselbunds für den Hybrid Runbook Worker
  • Überprüfen, ob die Signaturüberprüfung aktiviert ist
  • Signieren eines Runbooks

Hinweis

  • PowerShell 7.x unterstützt keine signierten Runbooks für Agent-basiertes Windows und Agent-basierte Linux Hybrid Runbook Worker.
  • PowerShell- und Python-Runbooks werden für erweiterungsbasierte Linux Hybrid Worker nicht unterstützt.

Erstellen eines GPG-Schlüsselbunds und -Schlüsselpaars

Hinweis

Das Erstellen eines GPG-Schlüsselrings und eines Schlüsselpaars betrifft nur die Agent-basierten Hybrid Worker.

Verwenden Sie das Hybrid Runbook Worker-Konto nxautomation, um den GPG-Schlüsselbund und das GPG-Schlüsselpaar zu erstellen.

  1. Verwenden Sie die Anwendung sudo, um sich mit dem Konto nxautomation anzumelden.

    sudo su - nxautomation
    
  2. Sobald Sie nxautomation verwenden, generieren Sie das GPG-Schlüsselpaar als Stamm. GPG führt Sie durch die Schritte. Sie müssen Name, E-Mail-Adresse, Ablaufzeit und Passphrase angeben. Warten Sie anschließend, bis die Entropie auf dem Computer ausreicht, um den Schlüssel zu generieren.

    sudo gpg --generate-key
    
  3. Da das GPG-Verzeichnis mit sudo generiert wurde, müssen Sie seinen Besitzer mit dem folgenden Befehl als Stamm in nxautomation ändern.

    sudo chown -R nxautomation ~/.gnupg
    

Bereitstellen des Schlüsselbunds für den Hybrid Runbook Worker

Nachdem der Schlüsselbund erstellt wurde, stellen Sie ihn dem Hybrid Runbook Worker zur Verfügung. Ändern Sie die Einstellungsdatei home/nxautomation/state/worker.conf so, dass sie im Dateiabschnitt [worker-optional] den folgenden Beispielcode enthält.

gpg_public_keyring_path = /home/nxautomation/run/.gnupg/pubring.kbx

Überprüfen, ob die Signaturüberprüfung aktiviert ist

Wenn die Signaturprüfung auf dem Computer deaktiviert wurde, müssen Sie sie durch Ausführen des folgenden Befehls als Stamm aktivieren. Ersetzen Sie <LogAnalyticsworkspaceId> durch die ID Ihres Arbeitsbereichs.

sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/require_runbook_signature.py --true <LogAnalyticsworkspaceId>

Signieren eines Runbooks

Signieren Sie das Runbook nach dem Konfigurieren der Signaturprüfung mit dem folgenden GPG-Befehl.

gpg --clear-sign <runbook name>

Das signierte Runbook heißt <Runbookname>.asc.

Sie können nun das signierte Runbook in Azure Automation hochladen und es wie ein herkömmliches Runbook ausführen.

Protokollierung

Zur Unterstützung der Problembehandlung bei Runbooks, die auf einem Hybrid Runbook Worker ausgeführt werden, werden Protokolle lokal am folgenden Speicherort gespeichert:

  • Unter Windows unter C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes mit einer ausführlichen Protokollierung des Laufzeitprozesses des Auftrags. Allgemeine Runbook-Auftragsstatusereignisse werden in das Ereignisprotokoll Application and Services Logs\Microsoft-Automation\Operations geschrieben.

  • Unter Linux finden Sie die Benutzerprotokolle für Hybrid Worker unter /home/nxautomation/run/worker.log und die Systemprotokolle für Runbook Worker unter /var/opt/microsoft/omsagent/run/automationworker/worker.log.

Nächste Schritte