Conectar-se ao Azure Resource Manager no dispositivo Azure Stack Edge
APLICA-SE A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro 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.
Conclua as configurações de rede do dispositivo Azure Stack Edge.
Anote o endereço IP do dispositivo. Você usará esse IP mais tarde.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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:
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
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.
Execute o PowerShell como administrador. Você deve ter acesso à galeria do PowerShell.
Primeiro, verifique se não há versões existentes dos módulos do
AzureRM
e doAz
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, confiraPara 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
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:
Inicie o Bloco de notas como administrador e abra o arquivo hosts localizado em C:\Windows\System32\Drivers\etc.
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.
Para referência, use a imagem a seguir. Salve o arquivo hosts.
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.
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 comandoping
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.
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:
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...
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.
Chame APIs do dispositivo local para autenticar as conexões com o Azure Resource Manager.
Essas credenciais são para uma conta do computador local, e são usadas somente para acesso à API.
Você pode se conectar através do comando
login-AzAccount
ouConnect-AzAccount
.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 aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred
Use a ID do locatário aaaabbbb-0000-cccc-1111-dddd2222eeee, pois nesta instância ela é codificada em código. Use o seguinte nome de usuário e senha.
Nome de usuário - EdgeArmUser
Senha - Defina a senha para o Azure Resource Manager e use essa senha para entrar.
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 aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred Account SubscriptionName TenantId Environment ------- ---------------- -------- ----------- EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee AzASE PS C:\windows\system32>
Uma maneira alternativa para conectar é usar o cmdlet
login-AzAccount
.login-AzAccount -EnvironmentName <Environment Name> -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee
Veja um exemplo de saída.
PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee Account SubscriptionName TenantId ------- ---------------- -------- EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a... PS C:\WINDOWS\system32>
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 : aaaabbbb-0000-cccc-1111-dddd2222eeee
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 : {aaaabbbb-0000-cccc-1111-dddd2222eeee}
AccessToken :
Credential :
TenantMap : {}
CertificateThumbprint :
ExtendedProperties : {[Subscriptions, ...], [Tenants, aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e]}
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 aaaabbbb-0000-cccc-1111-dddd2222eeee 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 : aaaabbbb-0000-cccc-1111-dddd2222eeee
TokenCache : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache
VersionProfile :
ExtendedProperties : {}
Você passou para o ambiente desejado.