Uruchamianie elementów Runbook w hybrydowym procesie roboczym elementu Runbook w usłudze Automation

Ważne

  • Hybrydowy, oparty na agencie proces roboczy elementu Runbook użytkownika usługi Azure Automation (dla systemów Windows i Linux) zostanie wycofany 31 sierpnia 2024 r. i nie będzie obsługiwany po tej dacie. Przed 31 sierpnia 2024 r. należy przeprowadzić migrację istniejących hybrydowych, opartych na agencie procesów roboczych elementu Runbook użytkownika do procesów roboczych opartych na rozszerzeniach. Ponadto od 1 listopada 2023 r. tworzenie nowych hybrydowych procesów roboczych opartych na agentach nie byłoby możliwe. Dowiedz się więcej.
  • Konto Uruchom jako usługi Azure Automation zostanie wycofane 30 września 2023 r. i zostanie zastąpione tożsamościami zarządzanymi. Przed tą datą należy rozpocząć migrację elementów Runbook w celu korzystania z tożsamości zarządzanych. Aby uzyskać więcej informacji, zobacz migrowanie z istniejących kont Uruchom jako do tożsamości zarządzanej w celu rozpoczęcia migracji elementów Runbook z konta Uruchom jako do tożsamości zarządzanych przed 30 września 2023 r.

Elementy Runbook uruchamiane w hybrydowym procesie roboczym elementu Runbook zwykle zarządzają zasobami na komputerze lokalnym lub względem zasobów w środowisku lokalnym, w którym wdrożono proces roboczy. Elementy Runbook w usłudze Azure Automation zwykle zarządzają zasobami w chmurze platformy Azure. Mimo że są one używane inaczej, elementy Runbook uruchamiane w usłudze Azure Automation i elementy Runbook uruchamiane w hybrydowym procesie roboczym elementu Runbook są identyczne w strukturze.

Podczas tworzenia elementu Runbook do uruchamiania w hybrydowym procesie roboczym elementu Runbook należy edytować i przetestować element Runbook na maszynie, która hostuje proces roboczy. Maszyna hosta ma wszystkie moduły programu PowerShell i dostęp sieciowy wymagany do zarządzania zasobami lokalnymi. Po przetestowaniu elementu Runbook na maszynie hybrydowego procesu roboczego elementu Runbook możesz przekazać go do środowiska usługi Azure Automation, w którym można go uruchomić w procesie roboczym.

Planowanie usług platformy Azure chronionych przez zaporę

Włączenie usługi Azure Firewall w usłudze Azure Storage, usłudze Azure Key Vault lub usłudze Azure SQL blokuje dostęp z elementów Runbook usługi Azure Automation dla tych usług. Dostęp zostanie zablokowany nawet, gdy wyjątek zapory umożliwiający zezwolenie na zaufane usługi firmy Microsoft jest włączony, ponieważ usługa Automation nie jest częścią listy zaufanych usług. W przypadku włączonej zapory dostęp można uzyskać tylko przy użyciu hybrydowego procesu roboczego elementu Runbook i punktu końcowego usługi sieci wirtualnej.

Planowanie zachowania zadania elementu Runbook

Usługa Azure Automation obsługuje zadania w hybrydowych procesach roboczych elementów Runbook inaczej niż zadania uruchamiane w piaskownicach w chmurze. Jeśli masz długotrwały element Runbook, upewnij się, że jest odporny na możliwe ponowne uruchomienie. Aby uzyskać szczegółowe informacje o zachowaniu zadania, zobacz Zadania hybrydowego procesu roboczego elementu Runbook.

Konta usług

Hybrydowy proces roboczy systemu Windows

Zadania dla hybrydowych procesów roboczych elementów Runbook są uruchamiane na lokalnym koncie systemowym .

Uwaga

  • W programach PowerShell 5.1, PowerShell 7.1 (wersja zapoznawcza), Python 2.7 i Python 3.8 elementy Runbook są obsługiwane zarówno w przypadku hybrydowych procesów roboczych elementów Runbook opartych na rozszerzeniach, jak i agentach. W przypadku procesów roboczych opartych na agencie upewnij się, że wersja hybrydowego procesu roboczego systemu Windows to 7.3.12960 lub nowsza.
  • Elementy Runbook programu PowerShell 7.2 i Python 3.10 (wersja zapoznawcza) są obsługiwane tylko w przypadku hybrydowych procesów roboczych systemu Windows opartych na rozszerzeniach. Upewnij się, że rozszerzenie hybrydowego procesu roboczego systemu Windows ma wersję 1.1.11 lub nowszą.

Uwaga

Aby utworzyć zmienną środowiskową w systemach Windows, wykonaj następujące kroki:

  1. Przejdź do Panel sterowania> System>Advanced System Ustawienia.
  2. W obszarze Właściwości systemu wybierz pozycję Zmienne środowiskowe.
  3. W obszarze Zmienne systemowe wybierz pozycję Nowy.
  4. Podaj nazwę zmiennej i wartość zmiennej, a następnie wybierz przycisk OK.
  5. Uruchom ponownie maszynę wirtualną lub wyloguj się z bieżącego użytkownika i zaloguj się, aby zaimplementować zmiany zmiennej środowiskowej.

PowerShell 7.2

Aby uruchomić elementy Runbook programu PowerShell 7.2 w hybrydowym procesie roboczym systemu Windows, zainstaluj program PowerShell w hybrydowym procesie roboczym. Zobacz Instalowanie programu PowerShell w systemie Windows.

Po zakończeniu instalacji programu PowerShell 7.2 utwórz zmienną środowiskową o nazwie zmiennej jako powershell_7_2_path i zmiennej jako lokalizację wykonywalnego programu PowerShell. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

PowerShell 7.1

Aby uruchomić elementy Runbook programu PowerShell 7.1 w hybrydowym procesie roboczym systemu Windows, zainstaluj program PowerShell w hybrydowym procesie roboczym. Zobacz Instalowanie programu PowerShell w systemie Windows. Pamiętaj, aby dodać plik programu PowerShell do zmiennej środowiskowej PATH i ponownie uruchomić hybrydowy proces roboczy elementu Runbook po zakończeniu instalacji.

Python 3.10

Aby uruchomić elementy Runbook języka Python 3.10 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows.

Po zakończeniu instalacji języka Python 3.10 utwórz zmienną środowiskową o nazwie zmiennej jako python_3_10_path i wartości zmiennej jako lokalizację wykonywalnego języka Python. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

Python 3.8

Aby uruchomić elementy Runbook języka Python 3.8 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows. Utwórz zmienną środowiskowąPYTHON_3_PATH dla elementów Runbook języka Python 3.8 i upewnij się, że należy dodać lokalizację wykonywalnego języka Python jako wartość zmiennej. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

Jeśli plik wykonywalny języka Python znajduje się w domyślnej lokalizacji C:\WPy64-3800\python-3.8.0.amd64\python.exe, nie musisz tworzyć zmiennej środowiskowej.

Python 2.7

Aby uruchomić elementy Runbook języka Python 2.7 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows. Utwórz zmienną środowiskowąPYTHON_2_PATH dla elementów Runbook języka Python 2.7 i upewnij się, że lokalizacja pliku wykonywalnego języka Python jest wartością zmiennej. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

Jeśli plik wykonywalny języka Python znajduje się w domyślnej lokalizacji C:\Python27\python.exe, nie musisz tworzyć zmiennej środowiskowej.

Hybrydowy proces roboczy systemu Linux

Uwaga

  • Program PowerShell 5.1, PowerShell 7.1 (wersja zapoznawcza), Python 2.7, elementy Runbook języka Python 3.8 są obsługiwane zarówno w hybrydowych procesach roboczych elementów Runbook opartych na rozszerzeniach, jak i agentach. W przypadku procesów roboczych opartych na agentach upewnij się, że hybrydowy proces roboczy elementu Runbook systemu Linux ma wersję 1.7.5.0 lub nowszą.
  • Elementy Runbook programu PowerShell 7.2 i Python 3.10 (wersja zapoznawcza) są obsługiwane tylko w przypadku hybrydowych procesów roboczych systemu Linux opartych na rozszerzeniach. Upewnij się, że rozszerzenie hybrydowego procesu roboczego systemu Linux ma wersję 1.1.11 lub nowszą.

Uwaga

Aby utworzyć zmienną środowiskową w systemach Linux, wykonaj następujące kroki:

  1. Otwórz plik /etc/environment.
  2. Utwórz nową zmienną środowiskową, dodając VARIABLE_NAME="variable_value" w nowym wierszu w /etc/environment (VARIABLE_NAME jest nazwą nowej zmiennej środowiskowej i variable_value reprezentuje wartość, którą ma zostać przypisana).
  3. Uruchom ponownie maszynę wirtualną lub wyloguj się z bieżącego użytkownika i zaloguj się po zapisaniu zmian w /etc/environment, aby zaimplementować zmiany zmiennych środowiskowych.

PowerShell 7.2

Aby uruchomić elementy Runbook programu PowerShell 7.2 w hybrydowym procesie roboczym systemu Linux, zainstaluj plik programu PowerShell w hybrydowym procesie roboczym. Aby uzyskać więcej informacji, zobacz Instalowanie programu PowerShell w systemie Linux.

Po zakończeniu instalacji programu PowerShell 7.2 utwórz zmienną środowiskową o nazwie zmiennej jako powershell_7_2_path i wartości zmiennej jako lokalizację pliku wykonywalnego programu PowerShell . Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

Python 3.10

Aby uruchomić elementy Runbook języka Python 3.10 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Aby uzyskać więcej informacji, zobacz Instalowanie języka Python 3.10 w systemie Linux.

Po zakończeniu instalacji języka Python 3.10 utwórz zmienną środowiskową o nazwie zmiennej jako python_3_10_path i wartość zmiennej jako lokalizację pliku wykonywalnego języka Python . Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.

Python 3.8

Aby uruchomić elementy Runbook języka Python 3.8 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Upewnij się, że po zakończeniu instalacji dodaj plik wykonywalny języka Python do zmiennej środowiskowej PATH i uruchom ponownie hybrydowy proces roboczy elementu Runbook.

Python 2.7

Aby uruchomić elementy Runbook języka Python 2.7 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Upewnij się, że po zakończeniu instalacji dodaj plik wykonywalny języka Python do zmiennej środowiskowej PATH i uruchom ponownie hybrydowy proces roboczy elementu Runbook.

Konfigurowanie uprawnień elementu Runbook

Zdefiniuj uprawnienia elementu Runbook do uruchamiania w hybrydowym procesie roboczym elementu Runbook w następujący sposób:

  • Element runbook zapewnia własne uwierzytelnianie do zasobów lokalnych.
  • Konfigurowanie uwierzytelniania przy użyciu tożsamości zarządzanych dla zasobów platformy Azure.
  • Określ poświadczenia hybrydowego procesu roboczego, aby zapewnić kontekst użytkownika dla wszystkich elementów Runbook.

Używanie uwierzytelniania elementu Runbook do zasobów lokalnych

W przypadku przygotowywania elementu Runbook, który zapewnia własne uwierzytelnianie do zasobów, użyj zasobów poświadczeń i certyfikatów w elemecie Runbook. Istnieje kilka poleceń cmdlet, które umożliwiają określenie poświadczeń, aby element Runbook mógł uwierzytelniać się w różnych zasobach. W poniższym przykładzie pokazano część elementu Runbook, która uruchamia ponownie komputer. Pobiera poświadczenia z zasobu poświadczeń i nazwę komputera ze zmiennego zasobu, a następnie używa tych wartości z Restart-Computer polecenia cmdlet .

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

Restart-Computer -ComputerName $Computer -Credential $Cred

Można również użyć działania InlineScript . InlineScript umożliwia uruchamianie bloków kodu na innym komputerze z poświadczeniami.

Używanie uwierzytelniania elementu Runbook z tożsamościami zarządzanymi

Hybrydowe procesy robocze elementów Runbook na maszynach wirtualnych platformy Azure mogą używać tożsamości zarządzanych do uwierzytelniania w zasobach platformy Azure. Korzystanie z tożsamości zarządzanych dla zasobów platformy Azure zamiast kont Uruchom jako zapewnia korzyści, ponieważ nie trzeba:

  • Wyeksportuj certyfikat Uruchom jako, a następnie zaimportuj go do hybrydowego procesu roboczego elementu Runbook.
  • Odnów certyfikat używany przez konto Uruchom jako.
  • Obsługa obiektu połączenia Uruchom jako w kodzie elementu Runbook.

Istnieją dwa sposoby używania tożsamości zarządzanych w hybrydowych skryptach procesu roboczego elementu Runbook.

  1. Użyj przypisanej przez system tożsamości zarządzanej dla konta usługi Automation:

    1. Skonfiguruj tożsamość zarządzaną przypisaną przez system dla konta usługi Automation.

    2. Nadaj tej tożsamości wymagane uprawnienia w ramach subskrypcji, aby wykonać swoje zadanie.

    3. Zaktualizuj element Runbook, aby użyć polecenia cmdlet Połączenie-AzAccount przy użyciu parametru Identity w celu uwierzytelnienia w zasobach platformy Azure. Ta konfiguracja zmniejsza konieczność korzystania z konta Uruchom jako i wykonywania skojarzonego zarządzania kontami.

      # 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
      

    Uwaga

    Nie można użyć tożsamości zarządzanej użytkownika konta usługi Automation w hybrydowym procesie roboczym elementu Runbook. Musi to być tożsamość zarządzana przez system konta usługi Automation.

  2. W przypadku maszyny wirtualnej platformy Azure działającej jako hybrydowy proces roboczy elementu Runbook użyj tożsamości zarządzanej maszyny wirtualnej. W takim przypadku można użyć przypisanej przez użytkownika tożsamości zarządzanej maszyny wirtualnej lub przypisanej przez system tożsamości zarządzanej maszyny wirtualnej.

    Uwaga

    Nie będzie to działać na koncie usługi Automation, które zostało skonfigurowane przy użyciu tożsamości zarządzanej konta usługi Automation. Gdy tylko tożsamość zarządzana konta usługi Automation jest włączona, nie jest już możliwe użycie tożsamości zarządzanej maszyny wirtualnej, a następnie możliwe jest użycie przypisanej przez system tożsamości zarządzanej konta usługi Automation zgodnie z opcją 1 powyżej.

    Użyj dowolnej z następujących tożsamości zarządzanych:

    1. Skonfiguruj tożsamość zarządzaną systemu dla maszyny wirtualnej.
    2. Nadaj tej tożsamości wymagane uprawnienia w ramach subskrypcji, aby wykonywać swoje zadania.
    3. Zaktualizuj element Runbook, aby używał polecenia cmdlet Połączenie-Az-Account przy użyciu parametru Identity w celu uwierzytelniania w zasobach platformy Azure. Ta konfiguracja zmniejsza konieczność korzystania z konta Uruchom jako i wykonywania skojarzonego zarządzania kontami.
        # 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
    

Serwer z obsługą usługi Arc lub maszyna wirtualna VMware vSphere z obsługą usługi Arc działająca jako hybrydowy proces roboczy elementu Runbook ma już przypisaną wbudowaną tożsamość zarządzaną systemu, która może być używana do uwierzytelniania.

  1. Możesz udzielić tej tożsamości zarządzanej dostępu do zasobów w subskrypcji w bloku Kontrola dostępu (IAM) dla zasobu, dodając odpowiednie przypisanie roli.

    Screenshot of how to select managed identities.

  2. Dodaj tożsamość zarządzaną usługi Azure Arc do wybranej roli zgodnie z potrzebami.

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

Uwaga

Nie będzie to działać na koncie usługi Automation, które zostało skonfigurowane przy użyciu tożsamości zarządzanej konta usługi Automation. Gdy tylko tożsamość zarządzana konta usługi Automation jest włączona, nie można już używać tożsamości zarządzanej usługi Arc, a następnie można używać tożsamości zarządzanej przypisanej przez system konta usługi Automation zgodnie z opcją 1 powyżej.

Uwaga

Domyślnie konteksty platformy Azure są zapisywane do użycia między sesjami programu PowerShell. Istnieje możliwość, że po uwierzytelnieniu poprzedniego elementu Runbook w hybrydowym procesie roboczym elementu Runbook na platformie Azure kontekst ten jest utrwalany na dysku w profilu programu System PowerShell zgodnie z kontekstami platformy Azure i poświadczeniami logowania | Microsoft Docs. Na przykład element Runbook z Get-AzVM funkcją może zwrócić wszystkie maszyny wirtualne w subskrypcji bez wywołania Connect-AzAccountmetody , a użytkownik będzie mógł uzyskać dostęp do zasobów platformy Azure bez konieczności uwierzytelniania w ramach tego elementu Runbook. Automatyczne zapisywanie kontekstu można wyłączyć w programie Azure PowerShell, jak opisano tutaj.

Używanie uwierzytelniania elementu Runbook z poświadczeniami hybrydowego procesu roboczego

Zamiast uwierzytelniania elementu Runbook dla zasobów lokalnych można określić poświadczenia hybrydowego procesu roboczego dla hybrydowej grupy procesów roboczych elementu Runbook. Aby określić poświadczenia hybrydowego procesu roboczego, należy zdefiniować zasób poświadczeń, który ma dostęp do zasobów lokalnych. Te zasoby obejmują magazyny certyfikatów i wszystkie elementy Runbook uruchamiane w ramach tych poświadczeń w hybrydowym procesie roboczym elementu Runbook w grupie.

  • Nazwa użytkownika poświadczenia musi mieć jeden z następujących formatów:

    • Domena\nazwa_użytkownika
    • username@domain
    • nazwa użytkownika (w przypadku kont lokalnych na komputerze lokalnym)
  • Aby użyć elementu Runbook Runbook Export-RunAsCertificateToHybridWorker, należy zainstalować moduły Az dla usługi Azure Automation na komputerze lokalnym.

Używanie zasobu poświadczeń dla grupy hybrydowych procesów roboczych elementu Runbook

Domyślnie zadania hybrydowe są uruchamiane w kontekście konta systemowego. Jednak aby uruchamiać zadania hybrydowe w ramach innego zasobu poświadczeń, wykonaj następujące kroki:

  1. Utwórz zasób poświadczeń z dostępem do zasobów lokalnych.
  2. Otwórz konto usługi Automation w witrynie Azure Portal.
  3. Wybierz pozycję Grupy hybrydowych procesów roboczych, a następnie wybierz określoną grupę.
  4. Wybierz pozycję Ustawienia.
  5. Zmień wartość poświadczeń hybrydowego procesu roboczego z Domyślne na Niestandardowe.
  6. Wybierz poświadczenie i kliknij przycisk Zapisz.
  7. Jeśli następujące uprawnienia nie są przypisane dla użytkowników niestandardowych, zadania mogą zostać zawieszone.
Typ zasobu Uprawnienia do folderu
Maszyna wirtualna platformy Azure C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (odczyt i wykonanie)
Serwery z obsługą usługi Arc C:\ProgramData\Azure Połączenie edMachineAgent\Tokens (odczyt)
C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (odczyt i wykonanie)

Uwaga

Hybrydowy proces roboczy systemu Linux nie obsługuje poświadczeń hybrydowego procesu roboczego.

Uruchamianie elementu Runbook w hybrydowym procesie roboczym elementu Runbook

Uruchamianie elementu Runbook w usłudze Azure Automation opisuje różne metody uruchamiania elementu Runbook. Uruchamianie elementu Runbook w hybrydowym procesie roboczym elementu Runbook używa opcji Uruchom w celu określenia nazwy grupy hybrydowych procesów roboczych elementu Runbook. Po określeniu grupy jeden z procesów roboczych w tej grupie pobiera i uruchamia element Runbook. Jeśli element Runbook nie określi tej opcji, usługa Azure Automation uruchamia element Runbook jak zwykle.

Po uruchomieniu elementu Runbook w witrynie Azure Portal zostanie wyświetlona opcja Uruchom w pozycji , dla której można wybrać pozycję Azure lub Hybrydowy proces roboczy. Wybierz pozycję Hybrydowy proces roboczy, aby wybrać grupę hybrydowych procesów roboczych elementu Runbook z listy rozwijanej.

Screenshot showing how to select the Hybrid Runbook Worker group.

Podczas uruchamiania elementu Runbook przy użyciu programu PowerShell użyj parametru RunOnz poleceniem cmdlet Start-AzAutomationRunbook . W poniższym przykładzie użyto programu Windows PowerShell do uruchomienia elementu Runbook o nazwie Test-Runbook w grupie hybrydowych procesów roboczych elementu Runbook o nazwie MyHybridGroup.

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

Praca z podpisanymi elementami Runbook w hybrydowym procesie roboczym elementu Runbook systemu Windows

Możesz skonfigurować hybrydowy proces roboczy elementu Runbook systemu Windows do uruchamiania tylko podpisanych elementów Runbook.

Ważne

Po skonfigurowaniu hybrydowego procesu roboczego elementu runbook pod kątem uruchamiania tylko podpisanych elementów runbook niepodpisane elementy runbook nie będą uruchamiane w tym procesie roboczym.

Uwaga

Program PowerShell 7.x nie obsługuje podpisanych elementów runbook dla hybrydowych procesów roboczych elementów runbook systemów Windows i Linux.

Tworzenie certyfikatu podpisywania

Poniższy przykład tworzy certyfikat z podpisem własnym, który może służyć do podpisywania elementów Runbook. Ten kod tworzy certyfikat i eksportuje go, aby hybrydowy proces roboczy elementu Runbook mógł go zaimportować później. Odcisk palca jest również zwracany do późniejszego użycia w odwołaniu się do certyfikatu.

# 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

Importowanie certyfikatu i konfigurowanie procesów roboczych na potrzeby weryfikacji podpisu

Skopiuj utworzony certyfikat do każdego hybrydowego procesu roboczego elementu Runbook w grupie. Uruchom następujący skrypt, aby zaimportować certyfikat i skonfigurować procesy robocze do używania walidacji podpisu w elementach Runbook.

# 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"

Podpisywanie elementów Runbook przy użyciu certyfikatu

W przypadku hybrydowych procesów roboczych elementów Runbook skonfigurowanych do używania tylko podpisanych elementów Runbook należy podpisać elementy Runbook, które mają być używane w hybrydowym procesie roboczym elementu Runbook. Użyj następującego przykładowego kodu programu PowerShell, aby podpisać te elementy Runbook.

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

Po podpisaniu elementu Runbook należy zaimportować go na konto usługi Automation i opublikować go przy użyciu bloku podpisu. Aby dowiedzieć się, jak importować elementy Runbook, zobacz Importowanie elementu Runbook.

Uwaga

Używaj tylko znaków w postaci zwykłego tekstu w kodzie elementu Runbook, w tym komentarzy. Użycie znaków ze znakami diakrytycznymi, takimi jak á lub ñ, spowoduje błąd. Gdy usługa Azure Automation pobierze kod, znaki zostaną zastąpione znakiem zapytania, a podpisywanie zakończy się niepowodzeniem z komunikatem "Niepowodzenie walidacji skrótu podpisu".

Praca z podpisanymi elementami Runbook w hybrydowym procesie roboczym elementu Runbook systemu Linux

Aby móc pracować z podpisanymi elementami Runbook, hybrydowy proces roboczy elementu Runbook systemu Linux musi mieć plik wykonywalny gpG na komputerze lokalnym.

Ważne

Po skonfigurowaniu hybrydowego procesu roboczego elementu runbook pod kątem uruchamiania tylko podpisanych elementów runbook niepodpisane elementy runbook nie będą uruchamiane w tym procesie roboczym.

Aby wykonać tę konfigurację, wykonaj następujące kroki:

  • Tworzenie klucza grupy zarządzania zasadami grupy i klucza
  • Udostępnianie kluczy hybrydowemu procesowi roboczemu elementu Runbook
  • Sprawdź, czy weryfikacja podpisu jest włączona
  • Podpisywanie elementu Runbook

Uwaga

  • Program PowerShell 7.x nie obsługuje podpisanych elementów Runbook dla hybrydowego procesu roboczego elementu Runbook opartego na agencie i opartego na agencie.
  • Podpisane elementy Runbook programu PowerShell i języka Python nie są obsługiwane w hybrydowych procesach roboczych systemu Linux opartych na rozszerzeniach.

Tworzenie klucza grupy zarządzania zasadami grupy i klucza

Uwaga

Tworzenie kluczy grupy zasad grupy i keypair mają zastosowanie tylko dla hybrydowych procesów roboczych opartych na agencie.

Aby utworzyć klucz grupy zasad grupy i kluczpair, użyj konta hybrydowego procesu roboczego elementu Runbook nxautomation.

  1. Użyj aplikacji sudo, aby zalogować się jako konto nxautomation .

    sudo su - nxautomation
    
  2. Gdy używasz narzędzia nxautomation, wygeneruj klucz gpG jako katalog główny. Grupa zasad grupy przeprowadzi Cię przez kroki. Musisz podać nazwę, adres e-mail, czas wygaśnięcia i hasło. Następnie zaczekasz, aż na maszynie będzie wystarczająca ilość entropii, aby wygenerować klucz.

    sudo gpg --generate-key
    
  3. Ponieważ katalog GPG został wygenerowany za pomocą polecenia sudo, musisz zmienić jego właściciela na nxautomation przy użyciu następującego polecenia jako katalogu głównego.

    sudo chown -R nxautomation ~/.gnupg
    

Udostępnianie kluczy hybrydowemu procesowi roboczemu elementu Runbook

Po utworzeniu klucza udostępnij go hybrydowemu procesowi roboczemu elementu Runbook. Zmodyfikuj plik ustawień home/nxautomation/state/worker.conf , aby uwzględnić następujący przykładowy kod w sekcji [worker-optional]pliku .

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

Sprawdź, czy weryfikacja podpisu jest włączona

Jeśli walidacja podpisu została wyłączona na maszynie, należy ją włączyć, uruchamiając następujące polecenie jako katalog główny. Zastąp <LogAnalyticsworkspaceId> element identyfikatorem obszaru roboczego.

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

Podpisywanie elementu Runbook

Po skonfigurowaniu weryfikacji podpisu użyj następującego polecenia GPG, aby podpisać element Runbook.

gpg --clear-sign <runbook name>

Podpisany element Runbook nosi nazwę runbook name.asc>.<

Teraz możesz przekazać podpisany element Runbook do usługi Azure Automation i wykonać go jak zwykły element Runbook.

Rejestrowanie

Aby ułatwić rozwiązywanie problemów z elementami Runbook uruchomionymi w hybrydowym procesie roboczym elementu Runbook, dzienniki są przechowywane lokalnie w następującej lokalizacji:

  • W systemie Windows w C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes celu uzyskania szczegółowego rejestrowania procesów czasu wykonywania zadań. Zdarzenia stanu zadania elementu Runbook wysokiego poziomu są zapisywane w dziennikach zdarzeń aplikacji i usług\Microsoft-Automation\Operations .

  • W systemie Linux dzienniki hybrydowego procesu roboczego użytkownika można znaleźć w witrynie /home/nxautomation/run/worker.log, a dzienniki procesu roboczego elementu Runbook systemu można znaleźć w witrynie /var/opt/microsoft/omsagent/run/automationworker/worker.log.

Następne kroki