Connessione ad Azure Resource Manager nel dispositivo Azure Stack Edge

SI APPLICA A:Sì per LO SKU GPU ProAzure Stack Edge Pro - GPUSì per lo SKU Pro 2Azure Stack Edge Pro 2Sì per lo SKU Pro RAzure Stack Edge Pro RSì per mini R SKUAzure Stack Edge Mini R

Azure Resource Manager offre un livello di gestione che consente di creare, aggiornare ed eliminare risorse nella sottoscrizione di Azure. Il dispositivo Azure Stack Edge supporta le stesse API di Azure Resource Manager per creare, aggiornare ed eliminare le macchine virtuali in una sottoscrizione locale. Questo supporto consente di gestire il dispositivo in modo coerente con il cloud.

Questo articolo descrive come connettersi alle API locali nel dispositivo Azure Stack Edge tramite Azure Resource Manager tramite Azure PowerShell.

Endpoint nel dispositivo Azure Stack Edge

La tabella seguente riepiloga i vari endpoint esposti nel dispositivo, i protocolli supportati e le porte per accedere a tali endpoint. In tutto l'articolo sono disponibili riferimenti a questi endpoint.

# Endpoint Protocolli supportati Porta usata Utilizzo
1. Azure Resource Manager https 443 Per connettersi ad Azure Resource Manager per l'automazione
2. Servizio token di sicurezza https 443 Per eseguire l'autenticazione tramite token di accesso e aggiornamento
3. Blob* https 443 Per connettersi all'archiviazione BLOB tramite REST

* Connessione all'endpoint di archiviazione BLOB non è necessario per connettersi ad Azure Resource Manager.

Connessione al flusso di lavoro di Azure Resource Manager

Il processo di connessione alle API locali del dispositivo tramite Azure Resource Manager richiede la procedura seguente:

N.ro passaggio Eseguire questo passaggio... .. in questa posizione.
1. Configurare il dispositivo Azure Stack Edge Interfaccia utente Web locale
2. Creare e installare i certificati Interfaccia utente Web locale/client Windows
3. Esaminare e configurare i prerequisiti Client Windows
4. Configurare Azure PowerShell nel client Client Windows
5. Modificare il file host per la risoluzione dei nomi dell'endpoint Client Windows o server DNS
6. Verificare che il nome dell'endpoint sia stato risolto Client Windows
7. Usare i cmdlet di Azure PowerShell per verificare la connessione ad Azure Resource Manager Client Windows

Le sezioni seguenti illustrano in dettaglio ognuno dei passaggi precedenti nella connessione ad Azure Resource Manager.

Prerequisiti

Prima di iniziare, assicurarsi che il client usato per la connessione al dispositivo tramite Azure Resource Manager usi TLS 1.2. Per altre informazioni, vedere Configurare TLS 1.2 nel client Windows che accede al dispositivo Azure Stack Edge.

Passaggio 1: Configurare il dispositivo Azure Stack Edge

Seguire questa procedura nell'interfaccia utente Web locale del dispositivo Azure Stack Edge.

  1. Completare le impostazioni di rete per il dispositivo Azure Stack Edge.

    Pagina

    Prendere nota dell'indirizzo IP del dispositivo. Questo indirizzo IP verrà usato in un secondo momento.

  2. Configurare il nome del dispositivo e il dominio DNS dalla pagina Dispositivo . Prendere nota del nome del dispositivo e del dominio DNS perché verranno usati in un secondo momento.

    Pagina

    Importante

    Il nome del dispositivo, il dominio DNS verrà usato per formare gli endpoint esposti. Usare gli endpoint di Azure Resource Manager e BLOB dalla pagina Dispositivo nell'interfaccia utente Web locale.

Passaggio 2: Creare e installare i certificati

I certificati assicurano che la comunicazione sia attendibile. Nel dispositivo Azure Stack Edge, i certificati autofirmati, BLOB e Azure Resource Manager vengono generati automaticamente. Facoltativamente, è possibile inserire anche i propri certificati di BLOB firmati e Azure Resource Manager.

Quando si porta un certificato firmato personalizzato, è necessaria anche la catena di firma corrispondente del certificato. Per la catena di firma, Azure Resource Manager e i certificati BLOB nel dispositivo, sono necessari anche i certificati corrispondenti nel computer client per autenticare e comunicare con il dispositivo.

Per connettersi ad Azure Resource Manager, è necessario creare o ottenere certificati di firma ed endpoint, importarli nel client Windows e infine caricare questi certificati nel dispositivo.

Creare i certificati

Solo per l'uso di test e sviluppo, è possibile usare Windows PowerShell per creare certificati nel sistema locale. Durante la creazione dei certificati per il client, seguire queste linee guida:

  1. È prima necessario creare un certificato radice per la catena di firma. Per altre informazioni, vedere La procedura per creare certificati della catena di firma.

  2. È quindi possibile creare i certificati endpoint per Azure Resource Manager e BLOB (facoltativo). È possibile ottenere questi endpoint dalla pagina Dispositivo nell'interfaccia utente Web locale. Vedere la procedura per creare certificati endpoint.

  3. Per tutti questi certificati, assicurarsi che il nome soggetto e il nome alternativo soggetto siano conformi alle linee guida seguenti:

    Type Nome soggetto (SN) Nome alternativo soggetto (SAN) Esempio di nome soggetto
    Azure Resource Manager management.<Device name>.<Dns Domain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    management.mydevice1.microsoftdatabox.com
    Archiviazione BLOB* *.blob.<Device name>.<Dns Domain> *.blob.< Device name>.<Dns Domain> *.blob.mydevice1.microsoftdatabox.com
    Certificato singolo multi-SAN per entrambi gli endpoint <Device name>.<dnsdomain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    *.blob.<Device name>.<Dns Domain>
    mydevice1.microsoftdatabox.com

* L'archiviazione BLOB non è necessaria per connettersi ad Azure Resource Manager. Viene elencato qui nel caso in cui si creino account di archiviazione locali nel dispositivo.

Per altre informazioni sui certificati, vedere Come caricare i certificati nel dispositivo e importare i certificati nei client che accedono al dispositivo.

Caricare i certificati nel dispositivo

I certificati creati nel passaggio precedente si trovano nell'archivio personale nel client. Questi certificati devono essere esportati nel client in file di formato appropriati che possono quindi essere caricati nel dispositivo.

  1. Il certificato radice deve essere esportato come file di formato DER con estensione di file .cer . Per i passaggi dettagliati, vedere Esportare i certificati come file di formato .cer.

  2. I certificati endpoint devono essere esportati come file pfx con chiavi private. Per i passaggi dettagliati, vedere Esportare i certificati come file con estensione pfx con chiavi private.

  3. I certificati radice ed endpoint vengono quindi caricati nel dispositivo usando l'opzione +Aggiungi certificato nella pagina Certificati nell'interfaccia utente Web locale. Per caricare i certificati, seguire la procedura descritta in Caricare i certificati.

Importare certificati nel client che esegue Azure PowerShell

Il client Windows in cui si richiamano le API di Azure Resource Manager deve stabilire una relazione di trust con il dispositivo. A questo scopo, i certificati creati nel passaggio precedente devono essere importati nel client Windows nell'archivio certificati appropriato.

  1. Il certificato radice esportato come formato DER con estensione .cer ora deve essere importato nelle autorità di certificazione radice attendibili nel sistema client. Per i passaggi dettagliati, vedere Importare i certificati nell'archivio Autorità di certificazione radice attendibili.

  2. I certificati endpoint esportati come file pfx devono essere esportati come .cer. Questo .cer viene quindi importato nell'archivio certificati personale nel sistema. Per i passaggi dettagliati, vedere Importare i certificati nell'archivio personale.

Passaggio 3: Installare PowerShell nel client

Il client Windows deve soddisfare i prerequisiti seguenti:

  1. Eseguire Windows PowerShell 5.1. È necessario disporre di Windows PowerShell 5.1. Per controllare la versione di PowerShell nel sistema, eseguire il cmdlet seguente:

    $PSVersionTable.PSVersion
    

    Confrontare la versione principale e assicurarsi che sia 5.1 o versione successiva.

    Se hai una versione obsoleta, vedi Aggiornamento di Windows PowerShell esistente.

    Se PowerShell 5.1 non è disponibile, seguire Installazione di Windows PowerShell.

    Di seguito è riportato un esempio di output.

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    Try the new cross-platform PowerShell https://aka.ms/pscore6
    PS C:\windows\system32> $PSVersionTable.PSVersion
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      19041  906
    
  2. È possibile accedere a PowerShell Gallery.

    Eseguire PowerShell come amministratore. Verificare che la versione di PowerShellGet sia precedente alla 2.2.3. Verificare inoltre se PSGallery è registrato come repository.

    Install-Module PowerShellGet -MinimumVersion 2.2.3
    Import-Module -Name PackageManagement -ErrorAction Stop
    Get-PSRepository -Name "PSGallery"
    

    Di seguito è riportato un esempio di output.

    PS C:\windows\system32> Install-Module PowerShellGet -MinimumVersion 2.2.3
    PS C:\windows\system32> Import-Module -Name PackageManagement -ErrorAction Stop
    PS C:\windows\system32> Get-PSRepository -Name "PSGallery"
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2
    

Se il repository non è attendibile o sono necessarie altre informazioni, vedere Convalidare l'accessibilità di PowerShell Gallery.

Passaggio 4: Configurare Azure PowerShell nel client

Installare i moduli di Azure PowerShell nel client che funzionano con il dispositivo.

  1. Esegui PowerShell come amministratore. È necessario avere accesso a PowerShell Gallery.

  2. Verificare prima di tutto che nel client non siano presenti versioni di AzureRM e Az moduli esistenti. Per verificare, eseguire i comandi seguenti:

    # Check existing versions of AzureRM modules
    Get-InstalledModule -Name AzureRM -AllVersions
    
    # Check existing versions of Az modules
    Get-InstalledModule -Name Az -AllVersions
    

    Se sono presenti versioni esistenti, usare il Uninstall-Module cmdlet per disinstallare. Per ulteriori informazioni, vedere,

  3. Per installare i moduli di Azure PowerShell necessari da PowerShell Gallery, eseguire il comando seguente:

    • Se il client usa PowerShell Core versione 7.0 o successiva:

      # Install the Az.BootStrapper module. Select Yes when prompted to install NuGet.
      
      Install-Module -Name Az.BootStrapper
      
      # Install and import the API Version Profile into the current PowerShell session.
      
      Use-AzProfile -Profile 2020-09-01-hybrid -Force
      
      # Confirm the installation of PowerShell
      Get-Module -Name "Az*" -ListAvailable
      
    • Se il client usa PowerShell 5.1 o versione successiva:

      #Install the Az module version 1.10.0
      
      Install-Module -Name Az -RequiredVersion 1.10.0
      
  4. Assicurarsi di avere la versione corretta del modulo Az in esecuzione alla fine dell'installazione.

    Se è stato usato PowerShell 7 o versione successiva, l'output di esempio seguente indica che i moduli Az versione 2.0.1 (o successiva) sono stati installati correttamente.

    
    PS C:\windows\system32> Install-Module -Name Az.BootStrapper
    PS C:\windows\system32> Use-AzProfile -Profile 2020-09-01-hybrid -Force
    Loading Profile 2020-09-01-hybrid
    PS C:\windows\system32> Get-Module -Name "Az*" -ListAvailable
    

    Se è stato usato PowerShell 5.1 o versione successiva, l'output di esempio seguente indica che i moduli Az versione 1.10.0 sono stati installati correttamente.

    PS C:\WINDOWS\system32> Get-InstalledModule -Name Az -AllVersions
    Version     Name     Repository     Description
    -------     ----     ----------     -----------
    1.10.0      Az       PSGallery      Mic...
    
    PS C:\WINDOWS\system32>
    

Passaggio 5: Modificare il file host per la risoluzione dei nomi dell'endpoint

A questo punto si aggiungerà l'indirizzo IP del dispositivo a:

  • Il file host nel client OPPURE
  • La configurazione del server DNS

Importante

È consigliabile modificare la configurazione del server DNS per la risoluzione dei nomi di endpoint.

Nel client Windows in uso per connettersi al dispositivo seguire questa procedura:

  1. Avviare Blocco note come amministratore e quindi aprire il file hosts che si trova in C:\Windows\System32\Drivers\etc.

    File hosts di Esplora risorse

  2. Aggiungere le voci seguenti al file hosts sostituendo i valori con quelli appropriati per il dispositivo:

    <Device IP> login.<appliance name>.<DNS domain>
    <Device IP> management.<appliance name>.<DNS domain>
    <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
    

    Importante

    La voce nel file hosts deve corrispondere esattamente a quella fornita per connettersi ad Azure Resource Manager in un passaggio successivo. Assicurarsi che la voce Dns Domain (Dominio DNS) sia in lettere minuscole. Per ottenere i valori per <appliance name> e <DNS domain>, passare alla pagina Dispositivo nell'interfaccia utente locale del dispositivo.

    L'INDIRIZZO IP del dispositivo è stato salvato dall'interfaccia utente Web locale in un passaggio precedente.

    La voce è l'endpoint per il servizio token di sicurezza.The login.<appliance name>.<DNS domain> entry is the endpoint for Security Token Service (STS). Il servizio token di sicurezza è responsabile della creazione, della convalida, del rinnovo e dell'annullamento dei token di sicurezza. Il servizio token di sicurezza viene usato per creare il token di accesso e il token di aggiornamento usati per la comunicazione continua tra il dispositivo e il client.

    L'endpoint per l'archiviazione BLOB è facoltativo quando ci si connette ad Azure Resource Manager. Questo endpoint è necessario quando si trasferiscono i dati in Azure tramite account di archiviazione.

  3. Per indicazioni, vedere l'immagine seguente. Salvare il file hosts.

    File hosts nel Blocco note

Passaggio 6: Verificare la risoluzione dei nomi dell'endpoint nel client

Controllare se il nome dell'endpoint viene risolto nel client in uso per connettersi al dispositivo.

  1. È possibile usare l'utilità della ping.exe riga di comando per verificare che il nome dell'endpoint sia stato risolto. Dato un indirizzo IP, il ping comando restituisce il nome host TCP/IP del computer da tracciare.

    Aggiungere l'opzione -a alla riga di comando come illustrato nell'esempio seguente. Se il nome host è restituito, restituirà anche queste informazioni potenzialmente preziose nella risposta.

    Ping nel prompt dei comandi

Passaggio 7: Impostare l'ambiente di Azure Resource Manager

Impostare l'ambiente Azure Resource Manager e verificare che il dispositivo alla comunicazione client tramite Azure Resource Manager funzioni correttamente. Per questa verifica, seguire questa procedura:

  1. Usare il cmdlet Add-AzEnvironment per assicurarsi che la comunicazione tramite Azure Resource Manager funzioni correttamente e che le chiamate API attraversino la porta dedicata per Azure Resource Manager - 443.

    Il cmdlet Add-AzEnvironment aggiunge endpoint e metadati per consentire ai cmdlet di Azure Resource Manager di connettersi a una nuova istanza di Azure Resource Manager.

    Importante

    L'URL dell'endpoint di Azure Resource Manager specificato nel cmdlet seguente fa distinzione tra maiuscole e minuscole. Assicurarsi che l'URL dell'endpoint sia tutto in minuscolo e corrisponda a quello specificato nel file hosts. Se il caso non corrisponde, verrà visualizzato un errore.

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>/"
    

    Di seguito è riportato un output di esempio:

    PS C:\WINDOWS\system32> Add-AzEnvironment -Name AzASE -ARMEndpoint "https://management.myasegpu.wdshcsso.com/"
    
    Name  Resource Manager Url                      ActiveDirectory Authority
    ----  --------------------                      -------------------------
    AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
    
  2. Impostare l'ambiente come Azure Stack Edge e la porta da usare per le chiamate di Azure Resource Manager come 443. L'ambiente viene definito in due modi:

    • Impostare l'ambiente. Digitare il comando seguente:

      Set-AzEnvironment -Name <Environment Name>
      

      Ecco un esempio di output.

      PS C:\WINDOWS\system32> Set-AzEnvironment -Name AzASE
      
      Name  Resource Manager Url                      ActiveDirectory Authority
      ----  --------------------                      -------------------------
      AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
      

      Per altre informazioni, vedere Set-AzEnvironment.

    • Definire l'ambiente inline per ogni cmdlet eseguito. In questo modo, tutte le chiamate API passano attraverso l'ambiente corretto. Per impostazione predefinita, le chiamate passano attraverso il pubblico di Azure, ma si vuole che vengano eseguite nell'ambiente impostato per il dispositivo Azure Stack Edge.

    • Vedere altre informazioni su come cambiare gli ambienti Az.

  3. Chiamare le API del dispositivo locale per autenticare le connessioni ad Azure Resource Manager.

    1. Queste credenziali sono per un account del computer locale e vengono usate esclusivamente per l'accesso alle API.

    2. È possibile connettersi tramite login-AzAccount o tramite Connect-AzAccount il comando .

      1. Per accedere, digitare il comando seguente.

        $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        

        Usare l'ID tenant c0257de7-538f-415c-993a-1b87a031879d come in questa istanza è hardcoded. Usare il nome utente e la password seguenti.

        Di seguito è riportato un esempio di output per :Connect-AzAccount

        PS C:\windows\system32> $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        PS C:\windows\system32> $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        PS C:\windows\system32> Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        
        Account       SubscriptionName   TenantId            Environment
        -------       ----------------   --------            -----------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzASE
        
        PS C:\windows\system32>
        

        Un modo alternativo per accedere consiste nell'usare il login-AzAccount cmdlet .

        login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d

        Ecco un esempio di output.

        PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d
        
        Account               SubscriptionName              TenantId
        -------               ----------------              --------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a...
        
        PS C:\WINDOWS\system32>
        
  4. Per verificare che la connessione al dispositivo funzioni, usare il Get-AzResource comando . Questo comando deve restituire tutte le risorse esistenti localmente nel dispositivo.

    Ecco un esempio di output.

    PS C:\WINDOWS\system32> Get-AzResource
    
    Name              : aseimagestorageaccount
    ResourceGroupName : ase-image-resourcegroup
    ResourceType      : Microsoft.Storage/storageaccounts
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ase-image-resourcegroup/providers/Microsoft.Storage/storageac
                        counts/aseimagestorageaccount
    Tags              :
    
    Name              : myaselinuxvmimage1
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Compute/images
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Compute/images/myaselinuxvmimage1
    Tags              :
    
    Name              : ASEVNET
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Network/virtualNetworks
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET
    Tags              :
    
    PS C:\WINDOWS\system32>
    

Se si verificano problemi con le connessioni di Azure Resource Manager, vedere Risolvere i problemi di Azure Resource Manager per indicazioni.

Importante

La connessione ad Azure Resource Manager scade ogni 1,5 ore o se il dispositivo Azure Stack Edge viene riavviato. In questo caso, tutti i cmdlet eseguiti restituiranno messaggi di errore all'effetto che non si è più connessi ad Azure. Sarà necessario eseguire di nuovo l'accesso.

Cambiare ambiente

Potrebbe essere necessario passare da un ambiente all'altro.

Eseguire Disconnect-AzAccount il comando per passare a un oggetto diverso AzEnvironment. Se si usa e Login-AzAccount senza usare Disconnect-AzAccountSet-AzEnvironment , l'ambiente non viene modificato.

Negli esempi seguenti viene illustrato come passare tra due ambienti e AzASE1 AzASE2.

In primo luogo, elencare tutti gli ambienti esistenti nel client.

PS C:\WINDOWS\system32> Get-AzEnvironment​
Name    Resource Manager Url     ActiveDirectory Authority​
----    --------------------      -------------------------​
AzureChinaCloud   https://management.chinacloudapi.cn/                 https://login.chinacloudapi.cn/​
AzureCloud        https://management.azure.com/                        https://login.microsoftonline.com/​
AzureGermanCloud  https://management.microsoftazure.de/                https://login.microsoftonline.de/​
AzDBE1            https://management.HVTG1T2-Test.microsoftdatabox.com https://login.hvtg1t2-test.microsoftdatabox.com/adfs/​
AzureUSGovernment https://management.usgovcloudapi.net/                https://login.microsoftonline.us/​
AzDBE2            https://management.CVV4PX2-Test.microsoftdatabox.com https://login.cvv4px2-test.microsoftdatabox.com/adfs/​

Ottenere quindi l'ambiente a cui si è attualmente connessi tramite Azure Resource Manager.

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE2​
Subscription       : ...​
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}​

È ora necessario disconnettersi dall'ambiente corrente prima di passare all'altro ambiente.

PS C:\WINDOWS\system32> Disconnect-AzAccount​
​​
Id                    : EdgeArmUser@localhost​
Type                  : User​
Tenants               : {c0257de7-538f-415c-993a-1b87a031879d}​
AccessToken           :​
Credential            :​
TenantMap             : {}​
CertificateThumbprint :​
ExtendedProperties    : {[Subscriptions, ...], [Tenants, c0257de7-538f-415c-993a-1b87a031879d]}

Accedere all'altro ambiente. Di seguito è riportato l'output di esempio.

PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId​
​
Account     SubscriptionName   TenantId        Environment​
-------     ----------------   --------        -----------​
EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzDBE1

Eseguire questo cmdlet per verificare l'ambiente a cui si è connessi.

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE1​
Subscription       : ...
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}

Si è ora passati all'ambiente previsto.