Condividi tramite


Usare l'endpoint con privilegi nell'hub di Azure Stack

In qualità di operatore dell'hub di Azure Stack, è consigliabile usare il portale di amministrazione, PowerShell o le API di Azure Resource Manager per la maggior parte delle attività di gestione quotidiane. Tuttavia, per alcune operazioni meno comuni, è necessario usare privileged endpoint (PEP). PEP è una console di PowerShell remota preconfigurato che offre funzionalità sufficienti per eseguire un'attività necessaria. L'endpoint usa powerShell JEA (Just Enough Administration) per esporre solo un set limitato di cmdlet. Per accedere a PEP e richiamare il set limitato di cmdlet, viene usato un account con privilegi limitati. Non sono necessari account amministratore. Per maggiore sicurezza, lo scripting non è consentito.

È possibile usare il PEP per eseguire queste attività:

  • Attività di basso livello, come la raccolta dei log diagnostici.
  • Molte attività di integrazione del data center post-distribuzione per sistemi integrati, ad esempio l'aggiunta di server d'inoltro DNS (Domain Name System) dopo la distribuzione, la configurazione dell'integrazione di Microsoft Graph, l'integrazione di Active Directory Federation Services (AD FS), la rotazione dei certificati e così via.
  • Per collaborare con il personale di supporto per ottenere l'accesso temporaneo e di alto livello per la risoluzione approfondita dei problemi di un sistema integrato.

Il PEP registra ogni azione (e l'output corrispondente) eseguita nella sessione di PowerShell. In questo modo viene fornita la trasparenza completa e il controllo completo delle operazioni. È possibile mantenere questi file di log per i controlli futuri.

Nota

In Azure Stack Development Kit (ASDK) è possibile eseguire alcuni dei comandi disponibili in PEP direttamente da una sessione di PowerShell nell'host del kit di sviluppo. Tuttavia, è possibile testare alcune operazioni usando il PEP, ad esempio la raccolta di log, perché questo è l'unico metodo disponibile per eseguire determinate operazioni in un ambiente di sistemi integrati.

Nota

È anche possibile usare the Operator Access Workstation (OAW) per accedere all'endpoint con privilegi (PEP), al portale di amministrazione per gli scenari di supporto e agli strumenti GitHub dell'hub di Azure Stack. Per ulteriori informazioni, vedere postazione di lavoro di accesso per operatori di Azure Stack Hub.

Accedere all'endpoint privilegiato

È possibile accedere al PEP tramite una sessione di PowerShell remota nella macchina virtuale (VM) che ospita il PEP. In ASDK questa macchina virtuale è denominata AzS-ERCS01. Se si usa un sistema integrato, sono disponibili tre istanze di PEP, ognuna in esecuzione all'interno di una macchina virtuale (prefisso-ERCS01, prefisso-ERCS02 o prefisso-ERCS03) in host diversi per la resilienza.

Prima di iniziare questa procedura per un sistema integrato, assicurarsi di poter accedere al PEP tramite indirizzo IP o TRAMITE DNS. Dopo la distribuzione iniziale dell'hub di Azure Stack, è possibile accedere al PEP solo in base all'indirizzo IP perché l'integrazione DNS non è ancora configurata. Il fornitore dell'hardware OEM fornisce un file JSON denominato AzureStackStampDeploymentInfo che contiene gli indirizzi IP PEP.

È anche possibile trovare l'indirizzo IP nel portale di amministrazione dell'hub di Azure Stack. Aprire il portale; ad esempio https://adminportal.local.azurestack.external. Seleziona Gestione regioni>Proprietà.

È necessario impostare la cultura corrente su en-US quando si esegue l'endpoint con privilegi. In caso contrario, cmdlet come Test-AzureStack o Get-AzureStackLog non funzioneranno come previsto.

Nota

Per motivi di sicurezza, è necessario connettersi a PEP solo da una macchina virtuale con protezione avanzata in esecuzione nell'host del ciclo di vita dell'hardware o da un computer dedicato e sicuro, ad esempio una workstation con accesso con privilegi . La configurazione originale dell'host del ciclo di vita hardware non deve essere modificata dalla sua configurazione iniziale (inclusa l'installazione di nuovo software) né utilizzata per connettersi al PEP.

  1. Stabilire l'attendibilità.

    • In un sistema integrato eseguire il comando seguente da una sessione di Windows PowerShell con privilegi elevati per aggiungere il PEP come host attendibile nella macchina virtuale con protezione avanzata in esecuzione nell'host del ciclo di vita hardware o nella workstation con accesso con privilegi:

      Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
      
    • Se si esegue ASDK, accedere all'host del kit di sviluppo.

  2. Nella macchina virtuale rinforzata, in esecuzione sull'host di gestione del ciclo di vita dell'hardware, o sulla Workstation di Accesso Privilegiato, aprire una sessione di Windows PowerShell. Eseguire i comandi seguenti per stabilire una sessione remota nella macchina virtuale che ospita il PEP:

    • In un sistema integrato:

      $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
      

      Il parametro ComputerName può essere l'indirizzo IP o il nome DNS di una delle macchine virtuali che ospitano il PEP.

      Nota

      L'hub di Azure Stack non effettua una chiamata remota durante la convalida delle credenziali PEP. A tale scopo, si basa su una chiave pubblica RSA archiviata in locale.

    • Se esegui il modulo 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
      

    Quando richiesto, usare le credenziali seguenti:

    • nome utente: specificare l'account CloudAdmin nel formato <dominio dell'hub di Azure Stack>\cloudadmin.
    • Password: immettere la stessa password specificata durante l'installazione per l'account amministratore di dominio AzureStackAdmin.

    Nota

    Se non è possibile connettersi all'endpoint ERCS, ripetere i passaggi uno e due con un altro indirizzo IP della macchina virtuale ERCS.

    Avvertimento

    Per impostazione predefinita, il timbro dell'hub di Azure Stack è configurato con un solo account CloudAdmin . Non sono disponibili opzioni di ripristino se le credenziali dell'account vengono perse, compromesse o bloccate. Si perderà l'accesso all'endpoint con privilegi e ad altre risorse.

    È altamente consigliabile creare account CloudAdmin aggiuntivi, per evitare la ridistribuzione del timbro a spese proprie. Assicurarsi di documentare queste credenziali in base alle linee guida dell'azienda.

  3. Dopo la connessione, il prompt passerà a [ indirizzo IPo nome macchina virtuale ERCS]: PS> o a [azs-ercs01]: PS>, a seconda dell'ambiente. Da qui eseguire Get-Command per visualizzare l'elenco dei cmdlet disponibili.

    Per informazioni di riferimento sui cmdlet, vedere riferimento all'endpoint con privilegi dell'hub di Azure Stack

    Molti di questi cmdlet sono destinati solo agli ambienti di sistema integrati, ad esempio i cmdlet correlati all'integrazione del data center. In ASDK sono stati convalidati i cmdlet seguenti:

    • 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

Come usare l'endpoint con privilegi

Come accennato in precedenza, il PEP è un endpoint PowerShell JEA. Pur fornendo un livello di sicurezza sicuro, un endpoint JEA riduce alcune delle funzionalità di base di PowerShell, ad esempio il completamento di script o tabulazioni. Se si tenta un tipo di operazione script, l'operazione non riesce con l'errore ScriptsNotAllowed. Questo errore è il comportamento previsto.

Ad esempio, per ottenere l'elenco dei parametri per un determinato cmdlet, eseguire il comando seguente:

    Get-Command <cmdlet_name> -Syntax

In alternativa, è possibile usare il cmdlet Import-PSSession per importare tutti i cmdlet PEP nella sessione corrente nel computer locale. I cmdlet e le funzioni del PEP sono ora disponibili nel computer locale, insieme al completamento delle schede e, più in generale, allo scripting. È anche possibile eseguire il modulo Get-Help per esaminare le istruzioni dei cmdlet.

Per importare la sessione PEP nel computer locale, seguire questa procedura:

  1. Stabilire l'attendibilità.

    • In un sistema integrato, eseguire il comando seguente da una sessione di Windows PowerShell con privilegi elevati per aggiungere il PEP come host attendibile nella macchina virtuale con protezione avanzata in esecuzione nell'host del ciclo di vita hardware o nella Workstation con Accesso Privilegiato.

      winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
      
    • Se stai utilizzando l'ASDK, accedi all'host del kit di sviluppo.

  2. Nella VM con protezione avanzata in esecuzione nell'host del ciclo di vita dell'hardware o nella workstation di accesso con privilegi, aprire una sessione di Windows PowerShell. Eseguire i comandi seguenti per stabilire una sessione remota nella macchina virtuale che ospita il PEP:

    • In un sistema integrato:

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

      Il parametro ComputerName può essere l'indirizzo IP o il nome DNS di una delle macchine virtuali che ospitano il PEP.

    • Se stai eseguendo l'ASDK:

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

    Quando richiesto, usare le credenziali seguenti:

    • nome utente: specificare l'account CloudAdmin nel formato <dominio dell'hub di Azure Stack>\cloudadmin. Per ASDK, il nome utente è azurestack\cloudadmin.)

    • Password: immettere la stessa password specificata durante l'installazione per l'account amministratore di dominio AzureStackAdmin.

  3. Importare la sessione PEP nel computer locale:

    Import-PSSession $session
    
  4. È ora possibile usare il completamento tramite tabulazione ed eseguire script come di consueto nella sessione di PowerShell locale con tutte le funzioni e i cmdlet del PEP, senza ridurre il comportamento di sicurezza dell'hub di Azure Stack. Godere!

Chiudere la sessione del punto terminale privilegiato

Come accennato in precedenza, pep registra ogni azione (e l'output corrispondente) eseguita nella sessione di PowerShell. È necessario chiudere la sessione usando il cmdlet Close-PrivilegedEndpoint. Questo cmdlet chiude correttamente l'endpoint e trasferisce i file di log a una condivisione file esterna per la conservazione.

Per chiudere la sessione dell'endpoint:

  1. Creare una condivisione file esterna accessibile dal PEP. In un ambiente development kit è sufficiente creare una condivisione file nell'host del kit di sviluppo.

  2. Eseguire il cmdlet seguente:

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

    Il cmdlet usa i parametri nella tabella seguente:

    Parametro Descrizione Digitare Obbligatorio
    trascrizioniPathDestination Percorso della condivisione file esterna definita come "fileshareIP\sharefoldername" Stringa
    credenziali Credenziali per accedere alla condivisione file SecureString

Dopo che i file di log della trascrizione vengono trasferiti correttamente alla condivisione di file, vengono eliminati automaticamente dai file PEP.

Nota

Se si chiude la sessione PEP usando i cmdlet Exit-PSSession o Exitoppure si chiude semplicemente la console di PowerShell, i log di trascrizione non vengono trasferiti in una condivisione file. Rimangono nel PEP. La volta successiva che si esegue Close-PrivilegedEndpoint e si include una condivisione file, verranno trasferiti anche i log delle trascrizioni delle sessioni precedenti. Non usare Exit-PSSession o Exit per chiudere la sessione PEP; usare invece Close-PrivilegedEndpoint.

Sblocco dell'endpoint con privilegi per scenari di supporto

Durante uno scenario di supporto, il tecnico del supporto Microsoft potrebbe dover elevare una sessione di PowerShell con privilegi elevati per accedere agli elementi interni dell'infrastruttura di Azure Stack Hub. Questo processo viene talvolta definito informalmente "rompere il vetro" o "sbloccare il PEP". Il processo di elevazione della sessione PEP è un processo di autenticazione in due fasi, due persone, due organizzazioni. La procedura di sblocco viene avviata dall'operatore hub di Azure Stack, che mantiene sempre il controllo dell'ambiente. L'operatore accede a PEP ed esegue questo cmdlet:

     Get-SupportSessionToken

Il cmdlet restituisce il token di richiesta di sessione di supporto, una stringa alfanumerica molto lunga. L'operatore passa quindi il token di richiesta al tecnico del supporto Tecnico Microsoft tramite un supporto di propria scelta (ad esempio, chat, posta elettronica). Il tecnico del supporto Tecnico Microsoft usa il token di richiesta per generare, se valido, un token di autorizzazione della sessione di supporto e lo invia all'operatore hub di Azure Stack. Nella stessa sessione di PowerShell PEP, l'operatore passa quindi il token di autorizzazione come input a questo cmdlet:

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

Se il token di autorizzazione è valido, la sessione di PowerShell PEP viene elevata fornendo funzionalità di amministrazione complete e raggiungibilità completa nell'infrastruttura.

Nota

Tutte le operazioni e i cmdlet eseguiti in una sessione PEP con privilegi elevati devono essere eseguiti con supervisione rigorosa del tecnico del supporto Tecnico Microsoft. In caso contrario, potrebbe verificarsi un grave tempo di inattività, perdita di dati e potrebbe richiedere una ridistribuzione completa dell'ambiente dell'hub di Azure Stack.

Una volta terminata la sessione di supporto, è molto importante chiudere la sessione PEP con privilegi elevati usando il cmdlet Close-PrivilegedEndpoint come illustrato nella sezione precedente. Una sessione PEP viene terminata, il token di sblocco non è più valido e non può essere riutilizzato per sbloccare nuovamente la sessione PEP. Una sessione PEP con privilegi elevati ha una validità di 8 ore, dopo la quale, se non termina, la sessione PEP con privilegi elevati verrà automaticamente bloccata a una normale sessione PEP.

Contenuto dei token degli endpoint privilegiati

I token di autorizzazione e richiesta di sessione di supporto PEP sfruttano la crittografia per proteggere l'accesso e garantire che solo i token autorizzati possano sbloccare la sessione PEP. I token sono progettati per garantire in modo crittografico che un token di risposta possa essere accettato solo dalla sessione PEP che ha generato il token di richiesta. I token PEP non contengono alcun tipo di informazioni che potrebbero identificare in modo univoco un ambiente hub di Azure Stack o un cliente. Sono completamente anonimi. Di seguito sono riportati i dettagli del contenuto di ogni token.

Token di richiesta per la sessione di supporto

Il token di richiesta di sessione di supporto PEP è costituito da tre oggetti:

  • ID sessione generato in modo casuale.
  • Un certificato autofirmato, generato allo scopo di avere una coppia di chiavi pubblica/privata monouso. Il certificato non contiene informazioni sull'ambiente.
  • Timestamp che indica la scadenza del token di richiesta.

Il token di richiesta viene quindi crittografato con la chiave pubblica del cloud di Azure in cui è registrato l'ambiente dell'hub di Azure Stack.

Supporto del token di risposta dell'autorizzazione della sessione

Il token di risposta di autorizzazione del supporto PEP è costituito da due oggetti:

  • ID sessione generato in modo casuale estratto dal token di richiesta.
  • Timestamp che indica la scadenza del token di risposta.

Il token di risposta viene quindi crittografato con il certificato autofirmato contenuto nel token di richiesta. Il certificato autofirmato è stato decrittografato con la chiave privata associata al cloud di Azure in cui è registrato l'ambiente dell'hub di Azure Stack.

Passaggi successivi