Udostępnij za pośrednictwem


Używanie 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 na potrzeby 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ące możliwości, aby ułatwić wykonanie wymaganego zadania. Punkt końcowy używa programu PowerShell JEA (Just Enough Administration) w celu uwidocznienia tylko ograniczonego zestawu poleceń cmdlet. Aby uzyskać dostęp do PEP i wywołać ograniczony zestaw poleceń cmdlet, używane jest konto o niskich uprawnieniach. Nie są wymagane żadne konta administratora. W przypadku dodatkowych zabezpieczeń skrypty nie są dozwolone.

Aby wykonać te zadania, możesz użyć PEP.

  • Zadania niskopoziomowe, takie jak zbieranie dzienników diagnostycznych.
  • Wiele zadań integracyjnych w centrum danych po wdrożeniu zintegrowanych systemów, takich jak dodawanie serwerów przekazujących DNS, konfigurowanie integracji z Microsoft Graph, integracja z usługami Active Directory Federation Services (AD FS), rotacja certyfikatów i inne.
  • Aby współpracować z personelem pomocy technicznej w celu uzyskania tymczasowego, wysokiego poziomu dostępu do szczegółowego rozwiązywania problemów ze zintegrowanym systemem.

PEP rejestruje każde działanie (i jego odpowiadające dane wyjściowe), które wykonujesz w sesji PowerShell. Zapewnia to pełną przejrzystość i pełną inspekcję operacji. Te pliki dziennika można przechowywać na potrzeby przyszłych inspekcji.

Notatka

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, na przykład zbieranie dzienników, ponieważ jest to jedyna dostępna metoda do wykonywania niektórych operacji w zintegrowanym środowisku systemów.

Notatka

Możesz również użyć stacji roboczej dostępu operatora (OAW) do uzyskania dostępu do uprzywilejowanego punktu końcowego (PEP), portalu administratora przeznaczonego do scenariuszy pomocy technicznej oraz narzędzi GitHub w ramach Azure Stack Hub. Aby uzyskać więcej informacji, zobacz stacja robocza dostępu operatora 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 ma nazwę AzS-ERCS01. Jeśli używasz zintegrowanego systemu, istnieją trzy wystąpienia PEP, z których każde działa wewnątrz maszyny wirtualnej (prefiks-ERCS01, prefiks-ERCS02 lub prefiks-ERCS03) na różnych hostach w celu zapewnienia odporności.

Przed rozpoczęciem tej procedury dla zintegrowanego systemu upewnij się, że możesz uzyskać dostęp do PEP przez adres IP lub DNS. Po początkowym wdrożeniu usługi Azure Stack Hub można uzyskać dostęp tylko do pepa za pomocą adresu IP, ponieważ integracja z systemem DNS nie jest jeszcze skonfigurowana. Dostawca sprzętu OEM udostępnia 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. Wybierz pozycję Zarządzanie regionami>Właściwości.

Należy ustawić bieżącą kulturę na en-US podczas uruchamiania uprzywilejowanego punktu końcowego. W przeciwnym razie polecenia cmdlet, takie jak Test-AzureStack lub Get-AzureStackLog, nie będą działać zgodnie z oczekiwaniami.

Notatka

Ze względów bezpieczeństwa wymagamy, aby połączenie z PEP było nawiązywane jedynie z zahartowanej maszyny wirtualnej 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 (w tym poprzez instalowanie 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 programu Windows PowerShell z podwyższonym poziomem uprawnień, aby dodać PEP jako zaufany host na maszynie wirtualnej o wzmocnionych zabezpieczeniach uruchomionej 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 uruchomisz Azure Stack Development Kit (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ę programu 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.

      Notatka

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

    • Jeśli uruchomisz zestaw 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 <domenie usługi Azure Stack Hub>\cloudadmin.
    • hasło: wprowadź to samo hasło, które zostało podane podczas instalacji konta administratora domeny azureStackAdmin.

    Notatka

    Jeśli nie możesz nawiązać połączenia z punktem końcowym ERCS, spróbuj wykonać kroki jeden i drugi przy użyciu innego adresu IP maszyny wirtualnej ERCS.

    Ostrzeżenie

    Domyślnie sygnatura usługi Azure Stack Hub jest skonfigurowana tylko przy użyciu jednego konta CloudAdmin. Brak 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ę, aby utworzyć dodatkowe konta administratora w chmurze, aby uniknąć ponownego wdrażania swojego znaku 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 [adres IP lub nazwa maszyny wirtualnej ERCS]: PS> lub [azs-ercs01]: PS>, w zależności od środowiska. W tym miejscu uruchom Get-Command, aby wyświetlić listę dostępnych cmdlet.

    Dokumentację dotyczącą poleceń cmdlet można znaleźć w odniesieniach do 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 końcowym punktem programu PowerShell JEA . Zapewniając silną warstwę zabezpieczeń, punkt końcowy JEA zmniejsza niektóre z podstawowych możliwości programu PowerShell, takich jak wykonywanie skryptów lub uzupełnianie kart. Jeśli spróbujesz dowolnego typu operacji skryptu, operacja zakończy się niepowodzeniem z powodu błędu 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 tabulatora i, ogólnie rzecz biorąc, skryptowaniem. Możesz również uruchomić moduł Get-Help, aby przejrzeć instrukcje dotyczące poleceń cmdlet.

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

  1. Ustanów relację zaufania.

    • W zintegrowanym systemie uruchom następujące polecenie z sesji programu Windows PowerShell z podwyższonym poziomem uprawnień, aby dodać PEP jako zaufany host na wzmocnionej maszynie wirtualnej uruchomionej na hoście cyklu życia sprzętu lub Uprzywilejowanej Stacji Roboczej Dostępu.

      winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
      
    • Jeśli używasz zestawu ASDK, zaloguj się do hosta 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ę programu 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 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 <domenie 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żywać uzupełniania tabulatorów i wykonywać skrypty jak zwykle w lokalnej sesji programu PowerShell ze wszystkimi funkcjami i poleceniami cmdlet PEP, bez obniżania poziomu zabezpieczeń usługi Azure Stack Hub. Ciesz się!

Zamknij sesję punktu końcowego z uprawnieniami uprzywilejowanymi

Jak wspomniano wcześniej, PEP zapisuje każdą czynność (i odpowiadające jej dane wyjściowe) wykonywaną podczas sesji PowerShell. Sesję należy zamknąć przy użyciu polecenia cmdlet Close-PrivilegedEndpoint. To polecenie cmdlet poprawnie zamyka punkt końcowy i przesyła pliki dziennika do zewnętrznej udostępnionej przestrzeni dyskowej do przechowywania.

Aby zamknąć sesję punktu końcowego:

  1. Utwórz zewnętrzne udostępnianie plików dostępne dla PEP. W środowisku zestawu deweloperskiego można po prostu łatwo udostępnić pliki 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
    TranskrypcjePathDestination Ścieżka do zewnętrznego udziału plików określona jako "fileshareIP\sharefoldername" Struna Tak
    Poświadczenie Poświadczenia umożliwiające dostęp do udostępnionego zasobu SecureString Tak

Po pomyślnym przeniesieniu plików dziennika transkrypcji do zasobu udostępnionego, zostaną one automatycznie usunięte z PEP.

Notatka

Jeśli zamkniesz sesję PEP przy użyciu poleceń cmdlet Exit-PSSession lub Exitlub 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 zostaną również przeniesione dzienniki transkrypcji z poprzednich sesji. Nie używaj Exit-PSSession ani Exit, aby zamknąć sesję PEP; Zamiast tego użyj 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 wewnętrznych elementów infrastruktury usługi Azure Stack Hub. Ten proces jest czasami nieformalnie określany jako "złamanie szkła" lub "odblokowanie PEP". Proces podniesienia uprawnień sesji PEP to dwuetapowy, dwuosobowy, dwuorganizacyjny proces uwierzytelniania. 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 wsparcia, czyli bardzo długi ciąg alfanumeryczny. Następnie operator przekazuje żądanie tokenu do inżyniera pomocy technicznej firmy Microsoft poprzez wybrane przez siebie medium (np. czat, wiadomość 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 PowerShell operator przekazuje token autoryzacji jako wejście 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.

Notatka

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 zgodnie z opisem w powyższej sekcji. Gdy sesja PEP zostanie zakończona, token odblokowania nie jest już prawidłowy i nie można go ponownie użyć do odblokowania sesji PEP. Podwyższona sesja PEP ma ważność 8 godzin, po czym, jeśli nie zostanie przerwana, podwyższona sesja PEP automatycznie zablokuje się w regularną sesję PEP.

Zawartość tokenów uprzywilejowanego punktu końcowego

Żądanie sesji obsługi PEP i tokeny autoryzacji korzystają z kryptografii w celu ochrony dostępu i zapewnienia, ż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 zidentyfikować ś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 wsparcia

Token żądania sesji 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 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 certyfikatem samopodpisanym zawartym w tokenie żądania. Certyfikat z podpisem własnym został odszyfrowany przy użyciu klucza prywatnego skojarzonego z chmurą platformy Azure, do którego jest zarejestrowane środowisko usługi Azure Stack Hub.

Następne kroki