Korzystanie z uprzywilejowanego punktu końcowego w usłudze Azure Stack Hub

Jako operator usługi Azure Stack Hub należy używać portalu administratora, programu PowerShell lub interfejsów API usługi Azure Resource Manager do wykonywania większości codziennych zadań zarządzania. Jednak w przypadku niektórych mniej typowych operacji należy użyć uprzywilejowanego punktu końcowego (PEP). PEP to wstępnie skonfigurowana zdalna konsola programu PowerShell, która zapewnia wystarczającą liczbę możliwości, aby ułatwić wykonanie wymaganego zadania. Punkt końcowy używa programu PowerShell JEA (Just Enough Administration), aby uwidocznić tylko ograniczony zestaw poleceń cmdlet. Aby uzyskać dostęp do pep i wywołać ograniczony zestaw poleceń cmdlet, używane jest konto z niskimi uprawnieniami. Nie są wymagane żadne konta administratora. W przypadku dodatkowych zabezpieczeń skrypty nie są dozwolone.

Do wykonywania tych zadań można użyć pep:

  • Zadania niskiego poziomu, takie jak zbieranie dzienników diagnostycznych.
  • Wiele zadań integracji centrum danych po wdrożeniu dla zintegrowanych systemów, takich jak dodawanie usług przesyłania dalej systemu nazw domen (DNS) po wdrożeniu, konfigurowanie integracji programu Microsoft Graph, integracja Active Directory Federation Services (AD FS), rotacja certyfikatów itd.
  • Aby pracować z pomocą techniczną w celu uzyskania tymczasowego, wysokiego poziomu dostępu do szczegółowego rozwiązywania problemów ze zintegrowanym systemem.

Pep rejestruje każdą akcję (i odpowiadające jej dane wyjściowe) wykonywaną w sesji programu PowerShell. Zapewnia to pełną przejrzystość i pełną inspekcję operacji. Te pliki dziennika można przechowywać na potrzeby przyszłych inspekcji.

Uwaga

W zestawie Azure Stack Development Kit (ASDK) można uruchomić niektóre polecenia dostępne w pep bezpośrednio z sesji programu PowerShell na hoście zestawu deweloperskiego. Można jednak przetestować niektóre operacje przy użyciu pep, takich jak zbieranie dzienników, ponieważ jest to jedyna metoda dostępna do wykonywania niektórych operacji w środowisku zintegrowanych systemów.

Uwaga

Możesz również użyć stacji roboczej dostępu operatora (OAW), aby uzyskać dostęp do uprzywilejowanego punktu końcowego (PEP), portalu administratora na potrzeby scenariuszy pomocy technicznej i narzędzi GitHub Usługi Azure Stack Hub. Aby uzyskać więcej informacji, zobacz Stacja robocza dostępu operatora usługi Azure Stack Hub.

Uzyskiwanie dostępu do uprzywilejowanego punktu końcowego

Dostęp do pep uzyskuje się za pośrednictwem zdalnej sesji programu PowerShell na maszynie wirtualnej, która hostuje pep. W zestawie ASDK ta maszyna wirtualna nosi nazwę AzS-ERCS01. Jeśli używasz zintegrowanego systemu, istnieją trzy wystąpienia PEP, z których każdy działa na maszynie wirtualnej (Prefix-ERCS01, Prefix-ERCS02 lubPrefix-ERCS03) na różnych hostach w celu zapewnienia odporności.

Przed rozpoczęciem tej procedury dla zintegrowanego systemu upewnij się, że można uzyskać dostęp do pep za pomocą adresu IP lub za pośrednictwem systemu DNS. Po początkowym wdrożeniu usługi Azure Stack Hub można uzyskać dostęp do pep tylko według adresu IP, ponieważ integracja z systemem DNS nie jest jeszcze skonfigurowana. Dostawca sprzętu OEM dostarczy Ci plik JSON o nazwie AzureStackStampDeploymentInfo zawierający adresy IP PEP.

Adres IP można również znaleźć w portalu administratora usługi Azure Stack Hub. Otwórz portal, na przykład https://adminportal.local.azurestack.external. Wybierzpozycję Właściwościzarządzania regionami>.

Podczas uruchamiania uprzywilejowanego punktu końcowego należy ustawić en-US bieżące ustawienie kultury. W przeciwnym razie polecenia cmdlet, takie jak Test-AzureStack lub Get-AzureStackLog, nie będą działać zgodnie z oczekiwaniami.

Uwaga

Ze względów bezpieczeństwa wymagane jest połączenie się z pep tylko z maszyny wirtualnej ze wzmocnionym zabezpieczeniami działającej na hoście cyklu życia sprzętu lub z dedykowanego i bezpiecznego komputera, takiego jak stacja robocza z dostępem uprzywilejowanym. Oryginalna konfiguracja hosta cyklu życia sprzętu nie może być modyfikowana z oryginalnej konfiguracji (w tym instalowania nowego oprogramowania) ani używana do łączenia się z pep.

  1. Ustanów relację zaufania.

    • W zintegrowanym systemie uruchom następujące polecenie z sesji z podwyższonym poziomem uprawnień Windows PowerShell, aby dodać pep jako zaufany host na maszynie wirtualnej ze wzmocnionymi zabezpieczeniami uruchomionymi na hoście cyklu życia sprzętu lub stacji roboczej z dostępem uprzywilejowanym.

      Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
      
    • Jeśli używasz zestawu ASDK, zaloguj się do hosta zestawu deweloperów.

  2. Na wzmocnionej maszynie wirtualnej uruchomionej na hoście cyklu życia sprzętu lub stacji roboczej z dostępem uprzywilejowanym otwórz sesję Windows PowerShell. Uruchom następujące polecenia, aby ustanowić sesję zdalną na maszynie wirtualnej, która hostuje pep:

    • W zintegrowanym systemie:

      $cred = Get-Credential
      
      $pep = New-PSSession -ComputerName <IP_address_of_ERCS> -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      Enter-PSSession $pep
      

      Parametr ComputerName może być adresem IP lub nazwą DNS jednej z maszyn wirtualnych hostujących pep.

      Uwaga

      Usługa Azure Stack Hub nie wykona wywołania zdalnego podczas weryfikowania poświadczeń PEP. W tym celu opiera się na lokalnie przechowywanym kluczu publicznym RSA.

    • Jeśli używasz klucza ASDK:

      $cred = Get-Credential
      
      $pep = New-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      Enter-PSSession $pep
      

    Po wyświetleniu monitu użyj następujących poświadczeń:

    • Nazwa użytkownika: określ konto CloudAdmin w formacie < domena >usługi Azure Stack Hub\cloudadmin. (W przypadku zestawu ASDK nazwa użytkownika to azurestack\cloudadmin)
    • Hasło: wprowadź to samo hasło, które zostało podane podczas instalacji konta administratora domeny azureStackAdmin.

    Uwaga

    Jeśli nie możesz nawiązać połączenia z punktem końcowym ERCS, spróbuj ponownie wykonać kroki jednego i drugiego adresu IP maszyny wirtualnej ERCS.

    Ostrzeżenie

    Domyślnie sygnatura usługi Azure Stack Hub jest skonfigurowana tylko przy użyciu jednego konta CloudAdmin. Nie ma opcji odzyskiwania, jeśli poświadczenia konta zostaną utracone, naruszone lub zablokowane. Utracisz dostęp do uprzywilejowanego punktu końcowego i innych zasobów.

    Zdecydowanie zaleca się utworzenie dodatkowych kont CloudAdmin, aby uniknąć ponownego wdrażania sygnatury na własny koszt. Upewnij się, że te poświadczenia zostały udokumentowane na podstawie wytycznych firmy.

  3. Po nawiązaniu połączenia monit zmieni się na [ip address or ERCS VM name]: PS> lub [azs-ercs01]: PS>, w zależności od środowiska. W tym miejscu uruchom polecenie Get-Command , aby wyświetlić listę dostępnych poleceń cmdlet.

    Dokumentacja poleceń cmdlet znajduje się w temacie Azure Stack Hub privileged endpoint reference (Dokumentacja uprzywilejowanego punktu końcowego usługi Azure Stack Hub)

    Wiele z tych poleceń cmdlet jest przeznaczonych tylko dla zintegrowanych środowisk systemowych (takich jak polecenia cmdlet związane z integracją centrum danych). W zestawie ASDK zweryfikowano następujące polecenia cmdlet:

    • Clear-Host
    • Close-PrivilegedEndpoint
    • Exit-PSSession
    • Get-AzureStackLog
    • Get-AzureStackStampInformation
    • Get-Command
    • Get-FormatData
    • Get-Help
    • Get-ThirdPartyNotices
    • Measure-Object
    • New-CloudAdminUser
    • Out-Default
    • Remove-CloudAdminUser
    • Select-Object
    • Set-CloudAdminUserPassword
    • Test-AzureStack
    • Stop-AzureStack
    • Get-ClusterLog

Jak używać uprzywilejowanego punktu końcowego

Jak wspomniano powyżej, pep jest punktem końcowym programu PowerShell JEA . Zapewniając silną warstwę zabezpieczeń, punkt końcowy JEA zmniejsza niektóre podstawowe możliwości programu PowerShell, takie jak wykonywanie skryptów lub uzupełnianie kart. Jeśli spróbujesz dowolnego typu operacji skryptu, operacja zakończy się niepowodzeniem z błędem ScriptsNotAllowed. Ten błąd jest oczekiwanym zachowaniem.

Aby na przykład uzyskać listę parametrów dla danego polecenia cmdlet, uruchom następujące polecenie:

    Get-Command <cmdlet_name> -Syntax

Alternatywnie możesz użyć polecenia cmdlet Import-PSSession , aby zaimportować wszystkie polecenia cmdlet PEP do bieżącej sesji na komputerze lokalnym. Polecenia cmdlet i funkcje pep są teraz dostępne na komputerze lokalnym, wraz z uzupełnianiem karty i, ogólnie rzecz biorąc, skryptami. Możesz również uruchomić moduł Get-Help , aby przejrzeć instrukcje dotyczące poleceń cmdlet.

Aby zaimportować sesję PEP na maszynie lokalnej, wykonaj następujące czynności:

  1. Ustanów relację zaufania.

    • W zintegrowanym systemie uruchom następujące polecenie z sesji z podwyższonym poziomem uprawnień Windows PowerShell, aby dodać pep jako zaufany host na maszynie wirtualnej ze wzmocnionymi zabezpieczeniami uruchomionymi na hoście cyklu życia sprzętu lub stacji roboczej z dostępem uprzywilejowanym.

      winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
      
    • Jeśli używasz zestawu ASDK, zaloguj się do hosta zestawu deweloperów.

  2. Na wzmocnionej maszynie wirtualnej uruchomionej na hoście cyklu życia sprzętu lub stacji roboczej z dostępem uprzywilejowanym otwórz sesję Windows PowerShell. Uruchom następujące polecenia, aby ustanowić sesję zdalną na maszynie wirtualnej, która hostuje pep:

    • W zintegrowanym systemie:

      $cred = Get-Credential
      
      $session = New-PSSession -ComputerName <IP_address_of_ERCS> `
         -ConfigurationName PrivilegedEndpoint -Credential $cred `
         -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      

      Parametr ComputerName może być adresem IP lub nazwą DNS jednej z maszyn wirtualnych hostujących pep.

    • Jeśli używasz klucza ASDK:

      $cred = Get-Credential
      
      $session = New-PSSession -ComputerName azs-ercs01 `
         -ConfigurationName PrivilegedEndpoint -Credential $cred `
         -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      

    Po wyświetleniu monitu użyj następujących poświadczeń:

    • Nazwa użytkownika: określ konto CloudAdmin w formacie < domena >usługi Azure Stack Hub\cloudadmin. (W przypadku zestawu ASDK nazwa użytkownika to azurestack\cloudadmin).

    • Hasło: wprowadź to samo hasło, które zostało podane podczas instalacji konta administratora domeny azureStackAdmin.

  3. Zaimportuj sesję PEP na komputer lokalny:

    Import-PSSession $session
    
  4. Teraz możesz użyć uzupełniania tabulatorów i wykonywania skryptów jak zwykle w lokalnej sesji programu PowerShell ze wszystkimi funkcjami i poleceniami cmdlet pep bez zmniejszania stanu zabezpieczeń usługi Azure Stack Hub. Owocnej pracy.

Zamykanie sesji uprzywilejowanego punktu końcowego

Jak wspomniano wcześniej, pep rejestruje każdą akcję (i odpowiadające jej dane wyjściowe) wykonywane w sesji programu PowerShell. Sesję należy zamknąć przy użyciu Close-PrivilegedEndpoint polecenia cmdlet . To polecenie cmdlet poprawnie zamyka punkt końcowy i przesyła pliki dziennika do zewnętrznego udziału plików w celu przechowywania.

Aby zamknąć sesję punktu końcowego:

  1. Utwórz zewnętrzny udział plików dostępny dla pep. W środowisku zestawu deweloperskiego można po prostu utworzyć udział plików na hoście zestawu deweloperskiego.

  2. Uruchom następujące polecenie cmdlet:

    Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
    

    Polecenie cmdlet używa parametrów w poniższej tabeli:

    Parametr Opis Typ Wymagane
    TranskrypcjaPathDestination Ścieżka do zewnętrznego udziału plików zdefiniowanego jako "fileshareIP\sharefoldername" Ciąg Tak
    Referencje Poświadczenia umożliwiające dostęp do udziału plików Securestring Tak

Po pomyślnym przeniesieniu plików dziennika transkrypcji do udziału plików zostaną one automatycznie usunięte z pep.

Uwaga

Jeśli zamkniesz sesję PEP przy użyciu poleceń cmdlet Exit-PSSession lub Exit, lub po prostu zamkniesz konsolę programu PowerShell, dzienniki transkrypcji nie są przenoszone do udziału plików. Pozostają w PEP. Przy następnym uruchomieniu Close-PrivilegedEndpoint i dołączeniu udziału plików dzienniki transkrypcji z poprzednich sesji również zostaną przeniesione. Nie używaj polecenia Exit-PSSession lub Exit do zamykania sesji PEP; zamiast tego użyj polecenia Close-PrivilegedEndpoint .

Odblokowywanie uprzywilejowanego punktu końcowego na potrzeby scenariuszy pomocy technicznej

Podczas scenariusza pomocy technicznej inżynier pomocy technicznej firmy Microsoft może wymagać podniesienia poziomu sesji programu PowerShell uprzywilejowanego punktu końcowego w celu uzyskania dostępu do elementów wewnętrznych infrastruktury usługi Azure Stack Hub. Proces ten jest czasami nieformalnie określany jako "rozbić szkło" lub "odblokować PEP". Proces podniesienia uprawnień sesji PEP jest dwuetapowy, dwa osoby, dwa procesy uwierzytelniania organizacji. Procedura odblokowywania jest inicjowana przez operatora usługi Azure Stack Hub, który przez cały czas zachowuje kontrolę nad swoim środowiskiem. Operator uzyskuje dostęp do pep i wykonuje następujące polecenie cmdlet:

     Get-SupportSessionToken

Polecenie cmdlet zwraca token żądania sesji pomocy technicznej— bardzo długi ciąg alfanumeryczny. Następnie operator przekazuje token żądania do inżyniera pomocy technicznej firmy Microsoft za pośrednictwem wybranego nośnika (np. czatu, poczty e-mail). Inżynier pomocy technicznej firmy Microsoft używa tokenu żądania do wygenerowania, jeśli jest prawidłowy, tokenu autoryzacji sesji pomocy technicznej i wysyła go z powrotem do operatora usługi Azure Stack Hub. W tej samej sesji pep programu PowerShell operator przekazuje token autoryzacji jako dane wejściowe do tego polecenia cmdlet:

      unlock-supportsession
      cmdlet Unlock-SupportSession at command pipeline position 1
      Supply values for the following parameters:
      ResponseToken:

Jeśli token autoryzacji jest prawidłowy, sesja pep programu PowerShell jest podwyższona, zapewniając pełne możliwości administratora i pełną dostępność do infrastruktury.

Uwaga

Wszystkie operacje i polecenia cmdlet wykonywane w sesji PEP z podwyższonym poziomem uprawnień muszą być wykonywane pod ścisłym nadzorem inżyniera pomocy technicznej firmy Microsoft. Niepowodzenie tej czynności może spowodować poważny przestój, utratę danych i może wymagać pełnego ponownego wdrożenia środowiska usługi Azure Stack Hub.

Po zakończeniu sesji pomocy technicznej bardzo ważne jest zamknięcie sesji pep z podwyższonym poziomem uprawnień przy użyciu polecenia cmdlet Close-PrivilegedEndpoint , jak wyjaśniono w powyższej sekcji. Po zakończeniu sesji PEP token odblokowania nie jest już prawidłowy i nie można go ponownie użyć do odblokowania sesji PEP. Sesja PEP z podwyższonym poziomem uprawnień ma ważność 8 godzin, po czym, jeśli nie zostanie przerwana, sesja PEP z podwyższonym poziomem uprawnień automatycznie zablokuje się do regularnej sesji PEP.

Zawartość tokenów uprzywilejowanego punktu końcowego

Żądania sesji obsługi PEP i tokeny autoryzacji wykorzystują kryptografię do ochrony dostępu i zapewniają, że tylko autoryzowane tokeny mogą odblokować sesję PEP. Tokeny są przeznaczone do kryptograficznego zagwarantowania, że token odpowiedzi może zostać zaakceptowany tylko przez sesję PEP, która wygenerowała token żądania. Tokeny PEP nie zawierają żadnych informacji, które mogą jednoznacznie identyfikować środowisko usługi Azure Stack Hub lub klienta. Są one całkowicie anonimowe. Poniżej znajdują się szczegółowe informacje o zawartości każdego tokenu.

Token żądania sesji pomocy technicznej

Token żądania obsługi PEP składa się z trzech obiektów:

  • Losowo wygenerowany identyfikator sesji.
  • Certyfikat z podpisem własnym wygenerowany w celu posiadania jednorazowej pary kluczy publicznych/prywatnych. Certyfikat nie zawiera żadnych informacji dotyczących środowiska.
  • Sygnatura czasowa wskazująca wygaśnięcie tokenu żądania.

Token żądania jest następnie szyfrowany przy użyciu klucza publicznego chmury platformy Azure, do której jest zarejestrowane środowisko usługi Azure Stack Hub.

Obsługa tokenu odpowiedzi autoryzacji sesji

Token odpowiedzi obsługi autoryzacji PEP składa się z dwóch obiektów:

  • Wygenerowany losowo identyfikator sesji wyodrębniony z tokenu żądania.
  • Sygnatura czasowa wskazująca wygaśnięcie tokenu odpowiedzi.

Token odpowiedzi jest następnie szyfrowany przy użyciu certyfikatu z podpisem własnym zawartego w tokenie żądania. Certyfikat z podpisem własnym został odszyfrowany przy użyciu klucza prywatnego skojarzonego z chmurą platformy Azure, względem którego zarejestrowano środowisko usługi Azure Stack Hub.

Następne kroki