Conectar-se ao Azure Resource Manager no dispositivo Azure Stack Edge

APLICA-SE A:Sim, ao SKU do Pro GPUAzure Stack Edge Pro - GPUSim, ao SKU do Pro 2Azure Stack Edge Pro 2Sim, ao SKU do Pro RAzure Stack Edge Pro RSim, ao SKU do Mini RAzure Stack Edge Mini R

O Azure Resource Manager fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua assinatura do Azure. O dispositivo Azure Stack Edge dá suporte às mesmas APIs do Azure Resource Manager para a criação, a atualização e a exclusão de VMs em uma assinatura local. Esse suporte permite que você gerencie o dispositivo de maneira consistente com a nuvem.

Este artigo descreve como usar o Azure PowerShell para se conectar às APIs locais em seu dispositivo Azure Stack Edge através do Azure Resource Manager.

Pontos de extremidade no dispositivo Azure Stack Edge

A tabela a seguir resume os vários pontos de extremidade expostos em seu dispositivo, os protocolos com suporte e as portas para acessar esses pontos de extremidade. Ao longo do artigo, você encontrará referências a esses pontos de extremidade.

# Ponto de extremidade Protocolos com suporte Porta usada Usado para
1. Azure Resource Manager HTTPS 443 Para se conectar ao Azure Resource Manager para automação
2. Serviço de token de segurança HTTPS 443 Para autenticar através de tokens de acesso e de atualização
3. Blob* https 443 Para se conectar ao armazenamento de Blobs através de REST

* A conexão com o ponto de extremidade de armazenamento de blobs não é necessária para se conectar ao Azure Resource Manager.

Se conectar ao fluxo de trabalho do Azure Resource Manager

O processo de conexão a APIs locais do dispositivo usando o Azure Resource Manager requer as seguintes etapas:

Etapa nº Executar esta etapa ... .. neste local.
1. Configurar o dispositivo Azure Stack Edge Interface do Usuário da Web local
2. Criar e instalar certificados IU da Web local/cliente do Windows
3. Examinar e configurar os pré-requisitos Windows Client
4. Configurar o Azure PowerShell no cliente Windows Client
5. Modificar arquivo de host para resolução de nomes no ponto de extremidade Cliente do Windows ou servidor DNS
6. Verifique se o nome do ponto de extremidade está resolvido Windows Client
7. Use cmdlets do Azure PowerShell para verificar a conexão com o Azure Resource Manager Windows Client

As seções a seguir detalham cada uma das etapas acima na conexão com o Azure Resource Manager.

Pré-requisitos

Antes de começar, verifique se o cliente usado para se conectar ao dispositivo através do Azure Resource Manager está usando o TLS 1.2. Para obter mais informações, acesse Configurar TLS 1.2 no cliente Windows acessando o dispositivo Azure Stack Edge.

Etapa 1: Configurar o dispositivo Azure Stack Edge

Execute as etapas a seguir na IU da Web local de seu dispositivo Azure Stack Edge.

  1. Conclua as configurações de rede do dispositivo Azure Stack Edge.

    Página

    Anote o endereço IP do dispositivo. Você usará esse IP mais tarde.

  2. Configure o nome do dispositivo e o domínio DNS na página do Dispositivo. Anote o nome do dispositivo e o domínio DNS, pois você os usará posteriormente.

    Página

    Importante

    O nome do dispositivo, domínio DNS, será usado para formar os pontos de extremidade expostos. Use os pontos de extremidade do Azure Resource Manager e de Blob da página do Dispositivo na IU da Web local.

Etapa 2: criar e instalar certificados

Os certificados garantem que sua comunicação seja confiável. Em seu dispositivo Azure Stack Edge, o dispositivo autoassinado, o blob e os certificados do Azure Resource Manager são gerados automaticamente. Opcionalmente, você também pode usar seus próprios certificados assinados de blob e do Azure Resource Manager.

Quando você usa um certificado assinado por conta própria, também precisa da cadeia de assinatura correspondente do certificado. Para a cadeia de assinatura, o Azure Resource Manager e os certificados de blob no dispositivo, você precisa dos certificados correspondentes no computador cliente para autenticar e se comunicar com o dispositivo.

Para se conectar ao Azure Resource Manager, você deve criar ou obter a cadeia de assinatura e os certificados de ponto de extremidade, importar esses certificados no cliente Windows e, por fim, carregar esses certificados no dispositivo.

Criar certificados

Somente para fins de teste e desenvolvimento, você pode usar o Windows PowerShell para criar certificados no sistema local. Ao criar os certificados para o cliente, siga estas orientações:

  1. Primeiro, você precisa criar um certificado raiz para a cadeia de assinatura. Para obter mais informações, consulte as etapas para Criar certificados de cadeia de assinatura.

  2. Em seguida, você pode criar os certificados de ponto de extremidade para o Azure Resource Manager e o blob (opcional). Você pode obter esses pontos de extremidade na página do dispositivo na IU da Web local. Consulte as etapas para Criar certificados de ponto de extremidade.

  3. Para todos esses certificados, verifique se o nome da entidade e o nome alternativo da entidade estão em conformidade com as seguintes diretrizes:

    Tipo Nome da entidade (SN) Nome alternativo da entidade (SAN) Exemplo de nome da entidade
    Azure Resource Manager management.<Device name>.<Dns Domain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    management.mydevice1.microsoftdatabox.com
    Armazenamento de blobs* *.blob.<Device name>.<Dns Domain> *.blob.< Device name>.<Dns Domain> *.blob.mydevice1.microsoftdatabox.com
    Certificado único de várias SANs para ambos os pontos de extremidade <Device name>.<dnsdomain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    *.blob.<Device name>.<Dns Domain>
    mydevice1.microsoftdatabox.com

O armazenamento de blobs não é necessário para se conectar ao Azure Resource Manager. Ele é listado aqui caso você esteja criando contas de armazenamento local em seu dispositivo.

Para obter mais informações sobre certificados, acesse como Carregar certificados em seu dispositivo e importar certificados nos clientes que acessam o dispositivo.

Carregar certificados no dispositivo

Os certificados que você criou na etapa anterior estarão no repositório pessoal do cliente. Esses certificados precisam ser exportados do seu cliente em arquivos de formato apropriado que possam ser carregados em seu dispositivo.

  1. O certificado raiz deve ser exportado como um arquivo no formato DER com a extensão .cer. Para saber mais detalhes sobre as etapas, consulte Exportar certificados no formato .cer.

  2. Os certificados de ponto de extremidade devem ser exportados como arquivos . pfx com chaves privadas. Para saber mais detalhes sobre as etapas, consulte Exportar certificados como arquivos .pfx com chaves privadas.

  3. Os certificados raiz e de ponto de extremidade são carregados no dispositivo usando a opção + Adicionar certificado na página Certificados, na IU da Web local. Para carregar os certificados, siga as etapas em Carregar certificados.

Importar certificados no cliente que executa o Azure PowerShell

O cliente Windows no qual você invoca as APIs do Azure Resource Manager precisa estabelecer confiança com o dispositivo. Para este fim, os certificados que você criou na etapa anterior devem ser importados no cliente Windows no repositório de certificados apropriado.

  1. O certificado raiz que você exportou no formato DER com extensão .cer, deve ser importado agora nas Autoridades de Certificado Raiz Confiável no seu sistema cliente. Para saber mais detalhes sobre as etapas, consulte Importar certificados para o repositório de Autoridades de Certificado Raiz Confiável.

  2. Os certificados de ponto de extremidade exportados como .pfx devem ser exportados como .cer. Este .cer é, então, importado no repositório de certificados Pessoais do seu sistema. Para saber mais detalhes sobre as etapas, consulte Importar certificados para o repositório pessoal.

Etapa 3: instalar o PowerShell no cliente

O cliente Windows deve atender aos seguintes pré-requisitos:

  1. Executar Windows PowerShell 5.1. Você deve ter o Windows PowerShell 5.1. Para verificar a versão do PowerShell no sistema, execute o seguinte cmdlet:

    $PSVersionTable.PSVersion
    

    Compare a versão Principal e verifique se é 5.1 ou posterior.

    Se você tiver uma versão desatualizada, consulte Atualizar o Windows PowerShell existente.

    Se você não tiver o PowerShell 5.1, siga a Instalação do Windows PowerShell.

    Um exemplo de saída é mostrado abaixo.

    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. Você pode acessar a Galeria do PowerShell.

    Execute o PowerShell como administrador. Verifique se a versão do PowerShellGet é anterior à 2.2.3. Além disso, verifique se PSGallery está registrado como um repositório.

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

    Um exemplo de saída é mostrado abaixo.

    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 o repositório não for confiável ou se você precisar de mais informações, consulte Validar a acessibilidade da Galeria do PowerShell.

Etapa 4: configurar o Azure PowerShell no cliente

Instale os módulos do Azure PowerShell no cliente que funcionam com seu dispositivo.

  1. Execute o PowerShell como administrador. Você deve ter acesso à galeria do PowerShell.

  2. Primeiro, verifique se não há versões existentes dos módulos do AzureRM e do Az em seu cliente. Para verificar, execute os seguintes comandos:

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

    Se houver versões existentes, use o cmdlet Uninstall-Module para desinstalá-las. Para obter mais informações, confira

  3. Para instalar os módulos necessários do Azure PowerShell da Galeria do PowerShell, execute o seguinte comando:

    • Se o cliente estiver usando o PowerShell Core versão 7.0 ou posteriores:

      # 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 o cliente estiver usando o PowerShell 5.1 ou posteriores:

      #Install the Az module version 1.10.0
      
      Install-Module -Name Az -RequiredVersion 1.10.0
      
  4. Verifique se você tem a versão correta do módulo Az em execução no final da instalação.

    Se você usou o PowerShell 7 ou posterior, a saída de exemplo a seguir indica que os módulos Az versão 2.0.1 (ou posterior) foram instalados com êxito.

    
    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 você usou o PowerShell 5.1 ou posteriores, a saída de exemplo a seguir indica que os módulos Az versão 1.10.0 foram instalados com êxito.

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

Etapa 5: modificar arquivo de host para resolução de nomes no ponto de extremidade

Agora, você adicionará o endereço IP do dispositivo:

  • O arquivo de host no cliente OU
  • À configuração do servidor DNS

Importante

Recomendamos que você modifique a configuração do servidor DNS para a resolução de nome do ponto de extremidade.

No cliente Windows que você está usando para se conectar ao dispositivo, execute as seguintes etapas:

  1. Inicie o Bloco de notas como administrador e abra o arquivo hosts localizado em C:\Windows\System32\Drivers\etc.

    Arquivo hosts do Windows Explorer

  2. Adicione as seguintes entradas ao arquivo hosts substituindo-as por valores apropriados para seu 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

    A entrada no arquivo de hosts deve corresponder exatamente ao que foi fornecido para se conectar ao Azure Resource Manager em uma etapa posterior. Verifique se a entrada do Domínio DNS está em letras minúsculas. Para obter os valores de <appliance name> e <DNS domain>, vá até a página Dispositivo na IU local do dispositivo.

    Você salvou o IP do dispositivo da IU da Web local em uma etapa anterior.

    A entrada login.<appliance name>.<DNS domain> é o ponto de extremidade para o STS (Serviço de Token de Segurança). O STS é responsável pela criação, validação, renovação e cancelamento de tokens de segurança. O serviço de token de segurança é usado para criar o token de acesso e o token de atualização que são usados para comunicação contínua entre o dispositivo e o cliente.

    O ponto de extremidade para o armazenamento de blobs é opcional ao se conectar ao Azure Resource Manager. Esse ponto de extremidade é necessário ao transferir dados para o Azure por meio de contas de armazenamento.

  3. Para referência, use a imagem a seguir. Salve o arquivo hosts.

    Arquivo hosts no Bloco de notas

Etapa 6: verificar a resolução de nome do ponto de extremidade no cliente

Verifique se o nome do ponto de extremidade está resolvido no cliente que você está usando para se conectar ao dispositivo.

  1. Você pode usar o utilitário de linha de comando ping.exe para verificar se o nome do ponto de extremidade está resolvido. Após receber um endereço IP, o comando ping retornará o nome do host TCP/IP do computador que você está rastreando.

    Adicione o switch -a à linha de comando, conforme mostrado no exemplo abaixo. Se o nome do host for retornável, ele também retornará essas informações potencialmente valiosas na resposta.

    Execute o prompt de comando

Etapa 7: definir o ambiente do Azure Resource Manager

Defina o ambiente de Azure Resource Manager e verifique se a comunicação do dispositivo com o cliente através do Azure Resource Manager está funcionando bem. Execute as seguintes etapas para esta verificação:

  1. Use o cmdlet Add-AzEnvironment para garantir que a comunicação pelo Azure Resource Manager esteja funcionando corretamente e que as chamadas à API estejam passando pela porta dedicada ao Azure Resource Manager, 443.

    O cmdlet Add-AzEnvironment adiciona pontos de extremidade e metadados para permitir que os cmdlets do Azure Resource Manager se conectem a uma nova instância do Azure Resource Manager.

    Importante

    A URL do ponto de extremidade do Azure Resource Manager que você fornece no cmdlet a seguir diferencia maiúsculas de minúsculas. Verifique se a URL do ponto de extremidade está em minúsculas e se corresponde ao que você forneceu no arquivo de hosts. Se não corresponder, você verá uma mensagem de erro.

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

    Um exemplo de saída é mostrado abaixo:

    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. Defina o ambiente como o Azure Stack Edge e a porta a ser usada para chamadas do Azure Resource Manager como 443. Você define o ambiente de duas maneiras:

    • Defina o ambiente. Digite o seguinte comando:

      Set-AzEnvironment -Name <Environment Name>
      

      Veja um exemplo de saída.

      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...
      

      Para obter mais informações, acesse Set-AzEnvironment.

    • Defina o ambiente embutido para cada cmdlet que você executar. Isso garante que todas as chamadas à API estejam passando pelo ambiente correto. Por padrão, as chamadas passariam pelo Azure público, mas você deseja que elas passem pelo ambiente que você definiu para o dispositivo Azure Stack Edge.

    • Veja mais informações sobre como Alternar os ambientes do Az.

  3. Chame APIs do dispositivo local para autenticar as conexões com o Azure Resource Manager.

    1. Essas credenciais são para uma conta do computador local, e são usadas somente para acesso à API.

    2. Você pode se conectar através do comando login-AzAccount ou Connect-AzAccount.

      1. Para entrar, digite o comando a seguir.

        $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
        

        Use a ID do locatário c0257de7-538f-415c-993a-1b87a031879d, pois nessa instância ela é embutida em código. Use o seguinte nome de usuário e senha.

        Aqui está um exemplo de saída para o 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>
        

        Uma maneira alternativa para conectar é usar o cmdlet login-AzAccount.

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

        Veja um exemplo de saída.

        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. Para verificar se a conexão com o dispositivo está funcionando, use o comando Get-AzResource. Esse comando deve retornar todos os recursos que existem localmente no dispositivo.

    Veja um exemplo de saída.

    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 você tiver problemas em suas conexões com Azure Resource Manager, consulte Solucionar problemas do Azure Resource Manager para obter orientação.

Importante

A conexão com o Azure Resource Manager expira a cada 1,5 horas, ou se o dispositivo Azure Stack Edge for reiniciado. Se isso acontecer, todos os cmdlets que você executar retornarão mensagens de erro informando que você não está mais conectado ao Azure. Você precisará entrar novamente.

Alternar ambientes

Talvez seja necessário alternar entre dois ambientes.

Execute o comando Disconnect-AzAccount para alternar para outro AzEnvironment. Se você usar Set-AzEnvironment e Login-AzAccount sem usar Disconnect-AzAccount, o ambiente não será alternado.

Os exemplos a seguir mostram como alternar entre dois ambientes AzASE1 e AzASE2.

Primeiro, liste todos os ambientes existentes no cliente.

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/​

​ Em seguida, verifique em qual ambiente você está conectado através do 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 : {}​

Agora você deve se desconectar do ambiente atual antes de alternar para o outro 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]}

Conecte-se ao outro ambiente. O exemplo de saída é mostrado abaixo.

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

​ Execute este cmdlet para confirmar em qual ambiente você está conectado.

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 : {}

Você passou para o ambiente desejado.