Conectar-se ao Azure Resource Manager em seu 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 proporciona uma camada de gestão que lhe permite criar, atualizar e eliminar recursos na subscrição do Azure. O dispositivo Azure Stack Edge suporta as mesmas APIs do Azure Resource Manager para criar, atualizar e eliminar VMs numa subscrição local. Este suporte permite-lhe gerir o dispositivo de uma forma consistente com a nuvem.
Este artigo descreve como se conectar às APIs locais em seu dispositivo Azure Stack Edge por meio do Azure Resource Manager usando o Azure PowerShell.
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 suportados e as portas para acessar esses pontos de extremidade. Ao longo do artigo, você encontrará referências a esses pontos de extremidade.
# | Ponto final | Protocolos suportados | Porto usado | Utilizado para |
---|---|---|---|---|
1. | Azure Resource Manager | https | 443 | Para conectar-se ao Azure Resource Manager para automação |
2. | Serviço de token de segurança | https | 443 | Para autenticar via acesso e atualizar tokens |
3. | Blob* | https | 443 | Para conectar-se ao armazenamento de Blob via REST |
* A conexão com o ponto de extremidade de armazenamento de blob não é necessária para se conectar ao Gerenciador de Recursos do Azure.
Conectando-se ao fluxo de trabalho do Azure Resource Manager
O processo de conexão com APIs locais do dispositivo usando o Azure Resource Manager requer as seguintes etapas:
Passo # | Faça este passo... | .. neste local. |
---|---|---|
1. | Configurar seu dispositivo Azure Stack Edge | Interface do usuário da Web local |
2. | Criar e instalar certificados | Interface do usuário da Web cliente/local do Windows |
3. | Revisar e configurar os pré-requisitos | Cliente Windows |
4. | Configurar o Azure PowerShell no cliente | Cliente Windows |
5. | Modificar arquivo de host para resolução de nome de ponto de extremidade | Cliente Windows ou servidor DNS |
6. | Verifique se o nome do ponto de extremidade está resolvido | Cliente Windows |
7. | Usar cmdlets do Azure PowerShell para verificar a conexão com o Azure Resource Manager | Cliente Windows |
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 por meio do Azure Resource Manager está usando o TLS 1.2. Para obter mais informações, vá para Configurar o TLS 1.2 no cliente Windows que acessa o dispositivo Azure Stack Edge.
Etapa 1: Configurar o dispositivo Azure Stack Edge
Execute as etapas a seguir na interface do usuário da Web local do seu dispositivo Azure Stack Edge.
Conclua as configurações de rede para seu 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 Dispositivo . Anote o nome do dispositivo e o domínio DNS, pois você os usará mais tarde.
Importante
O nome do dispositivo, domínio DNS será usado para formar os pontos de extremidade que são expostos. Use o Gerenciador de Recursos do Azure e os pontos de extremidade de Blob da página Dispositivo na interface do usuário da Web local.
Etapa 2: Criar e instalar certificados
Os certificados garantem que sua comunicação seja confiável. No dispositivo Azure Stack Edge, os certificados de dispositivo autoassinado, blob e Azure Resource Manager são gerados automaticamente. Opcionalmente, você também pode trazer seu próprio blob assinado e certificados do Azure Resource Manager.
Quando você traz um certificado assinado por conta própria, você também precisa da cadeia de assinatura correspondente do certificado. Para a cadeia de assinatura, o Gerenciador de Recursos do Azure e os certificados de blob no dispositivo, você precisa dos certificados correspondentes na máquina cliente também para autenticar e se comunicar com o dispositivo.
Para se conectar ao Gerenciador de Recursos do Azure, você deve criar ou obter certificados de cadeia de assinatura e ponto de extremidade, importar esses certificados em seu cliente Windows e, finalmente, carregar esses certificados no dispositivo.
Criar certificados
Somente para uso de teste e desenvolvimento, você pode usar o Windows PowerShell para criar certificados em seu sistema local. Ao criar os certificados para o cliente, siga estas diretrizes:
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 blob (opcional). Você pode obter esses pontos de extremidade na página Dispositivo na interface do usuário da Web local. Consulte as etapas para Criar certificados de ponto de extremidade.
Para todos esses certificados, certifique-se de que o nome da entidade e o nome alternativo da entidade estejam em conformidade com as seguintes diretrizes:
Type Nome do assunto (SN) Nome alternativo da entidade (SAN) Exemplo de nome do assunto 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 Multi-SAN para ambos os endpoints <Device name>.<dnsdomain>
login.<Device name>.<Dns Domain>
management.<Device name>.<Dns Domain>
*.blob.<Device name>.<Dns Domain>
mydevice1.microsoftdatabox.com
* O armazenamento de Blob não é necessário para se conectar ao Azure Resource Manager. Ele está listado aqui caso você esteja criando contas de armazenamento local no seu dispositivo.
Para obter mais informações sobre certificados, vá para Como carregar certificados no seu dispositivo e importar certificados nos clientes que acessam seu dispositivo.
Carregar certificados no dispositivo
Os certificados que você criou na etapa anterior estão no repositório pessoal do seu cliente. Esses certificados precisam ser exportados em seu cliente para arquivos de formato apropriado que podem ser carregados para seu dispositivo.
O certificado raiz deve ser exportado como um arquivo de formato DER com extensão de arquivo .cer . Para obter etapas detalhadas, consulte Exportar certificados como um arquivo de formato .cer.
Os certificados de ponto de extremidade devem ser exportados como arquivos .pfx com chaves privadas. Para obter etapas detalhadas, consulte Exportar certificados como arquivo .pfx com chaves privadas.
Os certificados raiz e de ponto de extremidade são então carregados no dispositivo usando a opção +Adicionar certificado na página Certificados na interface do usuário 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 onde você invoca as APIs do Azure Resource Manager precisa estabelecer confiança com o dispositivo. Para esse fim, os certificados que você criou na etapa anterior devem ser importados no cliente Windows para o armazenamento de certificados apropriado.
O certificado raiz que você exportou como o formato DER com extensão .cer agora deve ser importado nas Autoridades de Certificação Raiz Confiáveis no sistema cliente. Para obter etapas detalhadas, consulte Importar certificados para o armazenamento de Autoridades de Certificação Raiz Confiáveis.
Os certificados de ponto de extremidade exportados como . pfx devem ser exportados como .cer. Esse .cer é então importado no armazenamento de certificados pessoais no seu sistema. Para obter etapas detalhadas, consulte Importar certificados para armazenamento pessoal.
Etapa 3: Instalar o PowerShell no cliente
Seu cliente Windows deve atender aos seguintes pré-requisitos:
Execute o Windows PowerShell 5.1. Você deve ter o Windows PowerShell 5.1. Para verificar a versão do PowerShell em seu sistema, execute o seguinte cmdlet:
$PSVersionTable.PSVersion
Compare a versão principal e certifique-se de que é 5.1 ou posterior.
Se tiver uma versão desatualizada, consulte Atualizar o Windows PowerShell existente.
Se você não tiver o PowerShell 5.1, siga Instalando o 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 é mais antiga que 2.2.3. Além disso, verifique se o
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 em seu cliente que funcionam com seu dispositivo.
Execute o PowerShell como um administrador. Você deve ter acesso à galeria do PowerShell.
Primeiro, verifique se não existem versões e
Az
módulos existentes noAzureRM
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
Uninstall-Module
cmdlet para desinstalar. Para obter mais informações, consulte,- Desinstale os módulos do AzureRM.
- Desinstale os módulos Az.
Para instalar os módulos necessários do Azure PowerShell a partir da Galeria do PowerShell, execute o seguinte comando:
Se o seu cliente estiver usando o PowerShell Core versão 7.0 ou posterior:
# 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 seu cliente estiver usando o PowerShell 5.1 ou posterior:
#Install the Az module version 1.10.0 Install-Module -Name Az -RequiredVersion 1.10.0
Certifique-se de que 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 posterior, 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 o arquivo host para resolução de nome de ponto de extremidade
Agora você adicionará o endereço IP do dispositivo a:
- O arquivo host no cliente, OU,
- A configuração do servidor DNS
Importante
Recomendamos que você modifique a configuração do servidor DNS para resolução de nomes de pontos 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, em seguida, abra o ficheiro de anfitriões localizado em C:\Windows\System32\Drivers\etc.
Adicione as seguintes entradas ao seu arquivo hosts substituindo por valores apropriados para o 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 hosts deve corresponder exatamente àquela fornecida para se conectar ao Azure Resource Manager em uma etapa posterior. Certifique-se de que a entrada de domínio DNS aqui está toda em minúsculas. Para obter os valores para o
<appliance name>
e<DNS domain>
, vá para a página Dispositivo na interface do usuário local do seu dispositivo.Você salvou o IP do dispositivo da interface do usuário da Web local em uma etapa anterior.
A
login.<appliance name>.<DNS domain>
entrada é o ponto de extremidade para o Serviço de Token de Segurança (STS). A 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 usado para comunicação contínua entre o dispositivo e o cliente.O ponto de extremidade para armazenamento de blob é opcional ao se conectar ao Gerenciador de Recursos do Azure. 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 do 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
ping.exe
utilitário de linha de comando para verificar se o nome do ponto de extremidade foi resolvido. Dado um endereço IP, oping
comando retorna o nome de host TCP/IP do computador que você está rastreando.Adicione a
-a
opção à 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 do Azure Resource Manager e verifique se a comunicação entre o dispositivo e o cliente através do Azure Resource Manager está a funcionar bem. Siga os seguintes passos para esta verificação:
Utilize o cmdlet
Add-AzEnvironment
para garantir que a comunicação através do Azure Resource Manager está a funcionar corretamente e as chamadas à API estão a passar pela porta dedicada ao Azure Resource Manager – 443.O cmdlet
Add-AzEnvironment
adiciona pontos finais e metadados para permitir aos cmdlets do Azure Resource Manager ligarem a uma nova instância do Azure Resource Manager.Importante
A URL de ponto de extremidade do Azure Resource Manager fornecida no cmdlet a seguir diferencia maiúsculas de minúsculas. Verifique se a URL do ponto de extremidade está toda em minúsculas e corresponde ao que você forneceu no arquivo hosts. Se o caso não corresponder, você verá um 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 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. Escreva o seguinte comando:
Set-AzEnvironment -Name <Environment Name>
Aqui está 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, vá para Set-AzEnvironment.
Defina o ambiente embutido para cada cmdlet que você executar. Isso garante que todas as chamadas de API estejam passando pelo ambiente correto. Por padrão, as chamadas passariam pelo público do Azure, mas você deseja que elas passem pelo ambiente definido para o dispositivo Azure Stack Edge.
Veja mais informações sobre como alternar ambientes Az.
Chame as APIs do dispositivo local para autenticar as ligações ao Azure Resource Manager.
Essas credenciais são para uma conta de máquina local e são usadas exclusivamente para acesso à API.
Você pode se conectar via
login-AzAccount
ou viaConnect-AzAccount
comando.Para entrar, digite o seguinte comando.
$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 o ID do locatário c0257de7-538f-415c-993a-1b87a031879d, pois neste caso ele é codificado. Use o seguinte nome de usuário e senha.
Nome - de usuário EdgeArmUser
Palavra-passe - Defina a palavra-passe para o Azure Resource Manager e utilize esta palavra-passe para iniciar sessão.
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 de entrar é usar o
login-AzAccount
cmdlet.login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
Aqui está 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>
Para verificar se a conexão com o dispositivo está funcionando, use o
Get-AzResource
comando. Este comando deve retornar todos os recursos que existem localmente no dispositivo.Aqui está 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 com suas conexões do 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. Terá de iniciar sessão novamente.
Mudar de ambientes
Pode ser necessário alternar entre dois ambientes.
Execute Disconnect-AzAccount
o comando para alternar para um arquivo .AzEnvironment
Se você usar Set-AzEnvironment
e Login-AzAccount
sem usar Disconnect-AzAccount
, o ambiente não será trocado.
Os exemplos a seguir mostram como alternar entre dois ambientes AzASE1
e AzASE2
.
Primeiro, liste todos os ambientes existentes no seu 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, obtenha a qual ambiente você está conectado no momento por meio do Gerenciador de Recursos do Azure.
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]}
Entre no outro ambiente. A saída de exemplo é apresentada 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 a 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 : {}
Agora você mudou para o ambiente pretendido.